2

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

これは可能ですか?

バージョン: SQL Server 2008 R2。

例のテーブル:-

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

したがって、Nameフィールドの内容が変更された場合は、ストアド プロシージャ 'Foo' を実行します。

何か案は?

4

1 に答える 1

4

使用する:

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」クエリによって「名前」フィールドが更新されたかどうかを確認するために使用されます。フィールドがそうでない場合、トリガーは制御を SQL サーバーに返します。

于 2010-08-24T02:57:11.557 に答える