私は、トリガーの実行を無効にするために使用できるテーブルを作成したいと考えています(データベースの値に応じて個別にオンとオフを切り替えます)。私はテーブル名とトリガ名を使ってこれを行うことに興味があり、複数のトリガを考慮して興味のある質問につながりました。トリガーの実行中にその名前とその実行テーブルなどのトリガーに関する情報を取得することは可能ですか?トリガの実行中にトリガに関する情報を取得することは可能ですか?
1
A
答えて
2
SQL Serverでは、@@ PROCID関数とOBJECT_NAME関数を使用して、実行中のトリガ(またはストアドプロシージャ)の名前を取得できます。たとえば、
CREATE TABLE MyTable (SomeColumn INT)
GO
CREATE TRIGGER MyTrigger ON dbo.MyTable
FOR INSERT
AS
PRINT OBJECT_NAME(@@PROCID)
DECLARE @TableName sysname
SET @TableName=(SELECT OBJECT_NAME(parent_object_id) FROM sys.objects WHERE [email protected]@PROCID)
PRINT @TableName
GO
INSERT INTO dbo.MyTable (SomeColumn) VALUES (1)
+1
しかし、私が言ったように、このトリガーを書き込んで複数のテーブルに適用する方法はありません。たとえば、動的SQLを介して複数のトリガを生成する場合は、トリガ本体の 'MyTrigger'と' MyTable'の値を 'CREATE TRIGGER'行に挿入するのと同時に置き換えることもできます。 –
関連する問題
- 1. クエリを実行したときにトリガされるトリガを知ることは可能ですか?
- 2. Jenkinsでトリガ情報をプログラムで取得する方法
- 3. Firebaseトリガをローカルでテストすることは可能ですか?
- 4. プログラムの実行中にRAMに関する情報を取得する
- 5. 実行可能ファイルに関する情報を確認する
- 6. ユーザーに表示される広告に関する情報を取得することは可能ですか?
- 7. 実行可能な情報を取得する
- 8. 受信機アプリからChromecastデバイスに関する情報を取得することは可能ですか
- 9. ブラウザの色に関する情報を取得することは可能ですか?
- 10. 実行中の.jarファイルの終了時に情報を収集することは可能ですか?
- 11. インストールplistから情報を取得することは可能ですか?
- 12. Ajax経由でページリダイレクト情報を取得することは可能ですか?
- 13. gcdaファイルから「実行時間消費」情報を取得することは可能ですか?
- 14. 特定の時間にアクションをトリガすることは可能ですか?
- 15. なぜWhenAnyValueはサブスクリプションでトリガ可能なトリガですか?
- 16. 実行中のデスクトップアプリケーションから情報を取得するウェブサイト
- 17. 特定のタイムスタンプでmongoDBのイベントをトリガすることは可能ですか?
- 18. VSTS内の別のリリースでリリースをトリガすることは可能ですか?
- 19. フォルダのクラウド機能をトリガすることは可能でしょうか?
- 20. システム内のすべての実行中のアクティビティに関する情報を取得するには?
- 21. x-editableをトリガする前に関数を実行する
- 22. gitコミットの履歴や情報からipやコンピュータに関する情報を取得することは可能ですか?
- 23. .NET Windowsフォーム:他の実行中のアプリケーション情報を取得するには?
- 24. Vueデータ要素の変更時に関数をトリガすることは可能ですか?
- 25. Quartz.NETでジョブとトリガを編集することは可能です
- 26. 実行時にジェネリックパラメータタイプをGWTから取得することは可能です
- 27. 実行時にラムダ式を取得することは可能ですか?
- 28. 実行時にスレッドが消費するリソースに関する情報を取得
- 29. アセンブリに関する情報を取得
- 30. パテ:nohupで実行中のプロセスから情報を取得
データベースシステムのタグを追加してください。トリガは製品固有のものです。 [tag:sql]は特定の製品ではなく、標準のSQL言語を指します。 –
しかし、私が認識しているほとんどのデータベースシステムでは、「一般的な」トリガーを書く本当の方法はありません - それぞれのトリガーはそれが適用される各テーブルに対してカスタマイズされなければならないので、通常は何もする必要はありませんランタイム・ディスカバリーを実行することができます。 –