2017-12-18 230 views
1

我有一個存儲過程在一組表中刪除並重新插入後,運行一組表,所有屬於同一架構[DATA_Countries]SQL Server - 在架構中的觸發器AFTER後觸發表

該操作是由另一個應用程序執行的,該應用程序刪除並重新創建目標表,但無法控制該目標表。

由於每次都刪除並重新創建表,因此我無法在每個目標表上使用觸發器。

有沒有辦法在每次表插入特定模式時返回一個觸發器,以返回此類表的名稱並啓動參數化存儲過程?

謝謝!

+0

您可以創建數據庫觸發器,是的,這可能會觸發DDL更改。觸發器將開始'CREATE TRIGGER [YourTriggername] ON DATABASE FOR CREATE_TABLE AS ...'。查看[CREATE TRIGGER(Transact-SQL)](https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-trigger-transact-sql)。 – Larnu

+0

謝謝。已經創建了一個AFTER數據庫觸發器,它可以工作。 關於如何訪問正在插入的表的名稱/模式的任何想法? –

回答

0

是的,您可以在SQL Server上創建DDL觸發器來跟蹤DDL更改。例如,如果我想跟蹤我的數據庫的AdventureWorks中的存儲過程的變化,我可以創造這樣的

CREATE TRIGGER td_ProcTrack 
ON AdventureWorks 
FOR CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE 
AS 
BEGIN 

<my code> 

END 

觸發轉寄此Article更詳細的例子