INSERT または UPDATE が成功するかどうかにかかわらず、UPDATE() は TRUE を返します。
複数の列で INSERT 動作または UPDATE 動作をテストするには、最初の UPDATE(column) 句に続けて、別の UPDATE(column) 句を指定します。COLUMNS_UPDATED を使用しても、複数の列で INSERT 動作または UPDATE 動作をテストできます。これは、挿入または更新された列を示すビット パターンを返します。
INSERT 動作では、列には明示的な値または暗黙的な (NULL) 値が挿入されるので、IF UPDATE は TRUE の値を返します。
メモ : |
|---|
|
IF UPDATE(column) 句は、IF 句、IF...ELSE 句、または WHILE 句と同じ役割を果たし、BEGIN...END ブロックを使用できます。詳細については、「流れ制御言語 (Transact-SQL)」を参照してください。
|
UPDATE(column) は、Transact-SQL トリガの内部のどこでも使用できます。
メモ : |
|---|
|
SQL Server 2000 では、UPDATE() は timestamp 列への変更を検出しません。これらの列の場合、トリガ内部の IF UPDATE() 句は、列が更新されているかどうかにかかわらず、FALSE を返します。SQL Server 2008 および SQL Server 2005 では、UPDATE() は timestamp 列への変更を検出します。DML トリガ内部の IF UPDATE() 句は、これらの列が更新されると TRUE を返します。
|