2


1

Sql Serverトリガーで、特定のフィールドが更新されたかどうかを把握することは可能ですか?

単純なテーブルがあり、何かをしたい場合(.. 列(および、探している列がわかっている)が変更されたときに、ストアドプロシージャを実行します。

これは可能ですか?

バージョン:SQL Server 2008 R2。

サンプル表:-

ID INTEGER PRIMARY KEY
Name NVARCHAR(100) NOT NULL
Age TINYINT NOT NULL
HairColour TINYINT NOT NULL

そう .. _Name_フィールドの内容が変更された場合、ストアドプロシージャ 'Foo’を実行します。

何か案は?

1 Answer


4


Use:

CREATE TRIGGER trig_updateName ON YOUR_TABLE

FOR UPDATE AS

  IF NOT UPDATE(Name)
  BEGIN

     RETURN

  END

  EXEC foo

このトリガーは、YOUR_TABLEの1つ以上のレコードを更新するたびに自動的に実行されます。 「UPDATE」関数は、「trig_updateAuthor」トリガーを実行した「UPDATE」クエリによって「Name」フィールドが更新されたかどうかを確認するために使用されます。 フィールドにない場合、トリガーはSQLサーバーに制御を返します。