トリガー は、テーブルまたはビュー上の特定のイベントに応答して、事前定義された SQL ステートメントのセットを自動的に実行する特別なタイプのデータベース オブジェクトです。トリガーは通常、ビジネス ルールの適用、データの整合性の維持、変更の記録や関連データの更新などのタスクの自動化に使用されます。
自動実行:
トリガーは、指定されたイベント (INSERT、UPDATE、DELETE など) が発生すると自動的に実行されます。
イベント駆動型:
トリガーはテーブルレベルのイベントに関連付けられており、関連するイベントがトリガーされるたびに呼び出されます。
データの整合性:
トリガーは、ルールまたはチェックを適用することで、データの一貫性と整合性を維持するのに役立ちます。
監査とログ:
トリガーは変更をログに記録し、誰が更新したのか、どのような変更が行われたのかを追跡できます。
カスタム ビジネス ロジック:
トリガーを使用すると、複雑なロジックをデータベース レベルで直接実装できます。
DDL トリガー (データ定義言語トリガー):
データベース スキーマの変更 (CREATE、ALTER、DROP など) に応答して起動されます。
ログオントリガー:
ユーザーのログイン イベントによってトリガーされ、セキュリティ ポリシーを強制するためによく使用されます。
CREATE TRIGGER TriggerName ON TableName AFTER INSERT, UPDATE, DELETE AS BEGIN -- SQL logic goes here END;
CREATE TRIGGER LogEmployeeChanges ON Employees AFTER INSERT, UPDATE, DELETE AS BEGIN INSERT INTO EmployeeLog (ChangeType, EmployeeID, ChangeDate) SELECT CASE WHEN EXISTS (SELECT * FROM deleted) AND EXISTS (SELECT * FROM inserted) THEN 'UPDATE' WHEN EXISTS (SELECT * FROM deleted) THEN 'DELETE' ELSE 'INSERT' END, ISNULL(d.EmployeeID, i.EmployeeID), GETDATE() FROM inserted i FULL OUTER JOIN deleted d ON i.EmployeeID = d.EmployeeID; END;
CREATE TRIGGER LogChanges ON Orders AFTER UPDATE AS BEGIN INSERT INTO OrderAudit (OrderID, OldStatus, NewStatus, ChangeDate) SELECT d.OrderID, d.Status, i.Status, GETDATE() FROM deleted d JOIN inserted i ON d.OrderID = i.OrderID; END;
CREATE TRIGGER PreventDeletion ON Employees INSTEAD OF DELETE AS BEGIN PRINT 'Deletion of employee records is not allowed.'; END;
CREATE TRIGGER UpdateDependentTables ON Departments AFTER UPDATE AS BEGIN UPDATE Employees SET DepartmentName = i.Name FROM inserted i WHERE Employees.DepartmentID = i.DepartmentID; END;
SQL トリガーは、プロセスを自動化し、ルールを適用し、データベース機能を強化するための強力なツールです。ただし、潜在的な複雑さやパフォーマンスへの影響と利点のバランスをとるために、慎重に使用する必要があります。
こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。
以上がSQL トリガーを理解する: データベース タスクを簡単に自動化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。