10
"INSTEAD OF"トリガーを持つテーブルのInsertステートメントは、実行の代わりに無限ループを引き起こしますか?例えばTRIGGERの代わりに、無限にループするのでしょうか?
この:
CREATE TRIGGER setDescToUpper ON part_numbers
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO part_numbers (
colA,
colB,
part_description
) SELECT
colA,
colB,
UPPER(part_description)
) FROM
INSERTED
END
GO
トリガー「の代わりに」内部のINSERT文は、ループを引き起こすだろうか?
再帰トリガを無効にしたくないです。
トリガーを一時的に無効にする必要はありますか?
出典:SQL Server - after insert trigger - update another column in the same table
+1右、それはINSTEAD OFトリガーです。 [MSDN](http://msdn.microsoft.com/en-us/library/ms189799.aspx): "テーブルに定義されたINSTEAD OFトリガが、通常はINSTEAD OFトリガを発生させるテーブルに対してステートメントを実行する場合トリガーは再帰的に呼び出されるのではなく、代わりに、テーブルにINSTEAD OFトリガーがなく、制約操作の連鎖とAFTERトリガーの実行を開始するように処理されます。 – Andomar
このシナリオでINSERT文を使用したときに何が起こるか説明できますか?引き金内のINSERTはまだ実行されますか? –
ありがとうございます。注目される。 – zunetastic