2015-06-25 29 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

相关问题