2015-06-25 33 views
0

我在我的數據庫中有450個表,我已經爲包括歷史表在內的所有表引入了一個新列。向SQL Server數據庫中的所有觸發器添加新列

我的問題是我的數據庫中有很多觸發器。如何在我的觸發器代碼中添加新列。

現在,我通過逐個採取觸發器腳本手動添加。但這是一項乏味的工作。任何人都可以請建議任何有效的方法來做這個過程。

+1

腳本的所有觸發器成一個文件,並進行 – Raj

+0

目前,我做這樣才修改。但即使我找不到和替換,我也很難添加這些列。 – StackUser

+3

這是觸發器所不理會的原因之一 - 它們增加了數據庫的複雜性(和不透明性)。現在沒什麼幫助,我知道...... –

回答

0

一種簡單的替代方法是爲每個表添加一個更多的觸發器。 您可以創建動態腳本,如:

SELECT 
'CREATE TRIGGER trg_' + name + '_NewFld 
ON ' + name + ' 
AFTER INSERT, UPDATE, DELETE 
AS 
BEGIN 
    --WRITER YOUR LOGIC FOR NEWLY ADDED FIELD 
END' 
from sys.tables 
+0

這個假設對於同一個 – Raj

+0

中的所有表的邏輯我有這樣的想法,但不幸的是邏輯差異很大。同樣的邏輯僅適用於少數觸發器。 – StackUser

相關問題