2017-12-18 12 views
1

すべて同じスキーマ[DATA_Countries]に属する一連のテーブルの後に実行するストアドプロシージャを削除してから再挿入しました。SQL Server - スキーマのAFTER INSERTテーブル

操作は別のアプリケーションによって実行されます。このアプリケーションは、対象のテーブルを削除して再作成します。このテーブルには、制御権がありません。

毎回テーブルが削除され再作成されるため、各ターゲットテーブルでトリガーを使用することはできません。

テーブルが特定のスキーマに挿入されるたびにトリガを取得し、そのテーブルの名前を返し、パラメータ化されたストアドプロシージャを起動する方法はありますか?

ありがとうございます!

+0

ため、このArticleを参照してください。この

CREATE TRIGGER td_ProcTrack ON AdventureWorks FOR CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE AS BEGIN <my code> END 

などのトリガーを作成することができますDDLの変更をトリガすることができます。トリガーは 'CREATE TRIGGER [YourTriggername] ON CREATE_TABLE AS ... 'データベースを起動します。 [CREATE TRIGGER(Transact-SQL)](https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql)を参照してください。 – Larnu

+0

ありがとうございます。 AFTERデータベーストリガーを作成していれば動作します。 挿入されているテーブルの名前/スキーマにどのようにアクセスするかについての考え方はありますか? –

答えて

0

はい、DDLの変更を追跡するためにSQL ServerでDDLトリガーを作成できます。私は私のデータベースのAdventureWorksのストアドプロシージャの変化を追跡したい場合たとえば、私は、そう、あなたはデータベース・トリガーを作成することができ、より詳細な例

関連する問題