ホームページ > データベース > mysql チュートリアル > SQL Server トリガーでの再帰を防ぐにはどうすればよいですか?

SQL Server トリガーでの再帰を防ぐにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-04 21:14:39
オリジナル
267 人が閲覧しました

How to Prevent Recursion in SQL Server Triggers?

SQL Server トリガーでの再帰の防止

トリガーはデータベース管理の強力なツールであり、開発者は特定のイベントが発生したときにカスタム アクションを実装できます。データベース。ただし、トリガーは意図しない再帰を引き起こす可能性もあり、トリガー自体が呼び出され、無限ループが発生します。

SQL Server では、挿入、更新、またはテーブルの変更時に自動的に実行されるトリガーを作成できます。削除操作。再帰を防ぐには、トリガー コード内にチェックを実装して、トリガー自体によって開始された更新と他のソースからの更新を区別することが重要です。

再帰を防ぐ 1 つのアプローチは、 TRIGGER_NESTLEVEL() 関数を使用してトリガーします。この関数は、トリガーが再帰的に実行された回数を示す、トリガーの現在のネスト レベルを返します。現在のネスト レベルが 1 より大きい場合、トリガーが別のトリガーのアクションから実行されているため、それ以上のアクションは必要ありません。

このアプローチを組み込んだ更新されたトリガー コードは次のとおりです。

ALTER TRIGGER [dbo].[tblMediaAfterInsertOrUpdate] 
   ON  [dbo].[tblMedia]
   BEFORE INSERT, UPDATE
AS 
BEGIN
    SET NOCOUNT ON

    DECLARE @IdMedia INTEGER,
        @NewSubject NVARCHAR(200)   
ログイン後にコピー

以上がSQL Server トリガーでの再帰を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート