ホームページ >データベース >mysql チュートリアル >SQL Server 2008 で INSERT トリガーを作成して従業員データの整合性を確保するにはどうすればよいですか?
SQL Server 2008 での INSERT トリガーの作成: 従業員情報挿入のトリガー
SQL Server 2008 では、トリガーを利用して特定のアクションを実行できます。テーブル内のデータが変更されたとき。このようなシナリオの 1 つは、EmployeeResult テーブルに従業員情報を挿入するときに、Employee テーブルに従業員情報が存在することを確認することです。
従業員レコードが Employee テーブルにない場合にそれを挿入するトリガーを作成するには、次のようにします。
CREATE TRIGGER trig_Update_Employee ON [EmployeeResult] FOR INSERT AS BEGIN -- Retrieve the inserted row data SELECT * INTO #InsertedRows FROM INSERTED; -- Check if the inserted employee exists in the Employee table SELECT COUNT(*) INTO #EmployeeCount FROM Employee WHERE Name IN (SELECT Name FROM #InsertedRows) AND Department IN (SELECT Department FROM #InsertedRows); -- Insert missing employee records IF #EmployeeCount < 1 BEGIN -- Dynamically generate the INSERT statement based on the inserted rows DECLARE @InsertStatement NVARCHAR(MAX) = 'INSERT INTO Employee (Name, Department) VALUES '; SELECT @InsertStatement += '("" + Name + "", ""' + Department + '"")' FROM #InsertedRows; -- Execute the dynamic INSERT statement EXEC sp_executesql @InsertStatement; END; END;
このトリガーは、INSERTED 疑似テーブルを利用して、挿入されたデータにアクセスします。まず、COUNT(*) クエリを使用して、従業員名と部門のペアが Employee テーブルにすでに存在するかどうかを確認します。そうでない場合は、挿入された行に基づいて VALUES 句を使用して INSERT ステートメントを動的に生成します。最後に、INSERT ステートメントを実行して、欠落している従業員情報を挿入します。
このトリガーを実装すると、すべての EmployeeResult 挿入の結果、対応する従業員データが Employee テーブルに存在するようになり、データの整合性と完全性が保証されます。 .
以上がSQL Server 2008 で INSERT トリガーを作成して従業員データの整合性を確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。