我正在尝试为SQLServer-2008中的每个版本创建一个大型数据库更改脚本。每个版本的所有脚本都包含在该版本的if语句的BEGIN和END标记中。
我手动创建的大多数脚本都很好,但是如果我在表格中间添加一个新字段而不是最后SQLSERVER自动生成的脚本相当大,那么创建一个{{1 },trigger
等
我注意到我必须删除所有脚本中的所有GO语句。删除所有后,我仍然会收到以下错误:
Msg 156,Level 15,State 1,Line 10641 关键字' TRIGGER'。
附近的语法不正确
然后我尝试将所有触发器包装在temp table
语句中,但仍然出现错误:
Msg 105,Level 15,State 1,Procedure T_I_ProformaWhatIf,Line 5 字符串后的未闭合引号') 来自master.dbo.sysprocesses WHERE spid = @@ spid
下面是一个我无法在IF,BEGIN,END中添加的脚本示例:
EXEC('')
任何关于更好地完成这件事的建议或建议都会很棒。
答案 0 :(得分:0)
经过它再次将TRIGGERS包裹在EXEC中('')结束了工作。
这里的两个技巧如下:
在EXEC('')中创建TRIGGER语句,例如
EXEC('创建TRIGGER [dbo]。[T_U_Table1] ON dbo.Table1').....