15

「INSTEAD OF」トリガーを持つテーブルの挿入ステートメントは、無限の「代わりに挿入」実行ループを引き起こしますか?

たとえば、次のようになります。

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

「代わりに」トリガー内の挿入ステートメントはループを引き起こしますか?

再帰トリガーを無効にしたくありません。

トリガーを一時的に無効にする必要がありますか?

ソース: SQL Server - 挿入トリガーの後 - 同じテーブル内の別の列を更新する

4

1 に答える 1

17

この INSERT は、トリガーを再度呼び出すことはありません。

SQL Server は INSTEAD OF トリガーを再帰的に呼び出すことはありません。まさにあなたが提起した理由からです。

于 2012-04-16T17:03:54.173 に答える