SQL Server のトリガー

SQL Server のトリガー

トリガーとは、何かのイベントをきっかけに実行されるストアドプロシージャのようなものです。

SQL Server のトリガーには、ログオントリガー、DDL トリガー、DML トリガーの3種類があります。


ログオントリガー

ログオントリガーは、その名の通り、ログオン時に、ユーザーセッションが確立される時に実行されます。

例えば、ログオントリガーを使って 「 既にセッションが確立されているユーザーが、他のセッションでログオンしようとした場合は拒否する 」 というようなことができます。


DDL トリガー

DDL (data definition language) トリガーは、CREATE・ALTER・DROP ステートメントのような、DDL イベントと呼ばれるデータベースのスキーマを変更するようなイベントをきっかけに実行されます。

例えば DLL トリガーを使うと、データベースのスキーマ変更を防いだり、データベーススキーマの変更記録を残したりすることができます。


DML トリガー

DML (data manipulation language) トリガーは、テーブルやビューに対して、INSERT・UPDATE・DELETE ステートメントのような、データの挿入・変更・削除等が起こった時に実行されます。

トリガーを起こしたステートメントと同じトランザクションとして扱われるので、トリガー内でエラーを起こすことによって、トランザクションをロールバックさせることもできます。

DML トリガーを使って、データの変更履歴を残したり、特定のカラムの値が変更された時に、他のテーブルの値も更新する等の追加の処理をしたりすることが可能です。

また、INSTEAD OF を指定することで、元の処理の代わりに別の処理をさせることも可能です。


T-SQL 入門 では、システム開発でよく使われる 「 DML トリガー 」 について取り上げます。

© 2010-2024 SQL Server 入門