Vin*_*inc 5 t-sql sql-server-2005
我想构建一个T-SQL更改脚本,该脚本将数据库更改从开发到测试再到生产.我把脚本分成了三个部分:
我希望这三个脚本中的所有更改都可以在事务中完成.要么处理脚本中的所有更改,要么 - 在出错时 - 回滚所有更改.我设法通过使用try/catch和begin事务语句为步骤1和3执行此操作.我现在的问题是对存储过程做同样的事情.在"创建存储过程"语句之前直接调用"begin transaction"会导致语法错误,告诉我"alter/create procedure statement必须是查询批处理中的第一个语句".所以我想知道如何在一个事务中组合多个create/alter procedure语句.
任何帮助都非常感谢;-)
谢谢
尝试这个:
begin transaction
go
create procedure foo as begin select 1 end
go
commit transaction
Run Code Online (Sandbox Code Playgroud)