2011-08-09 33 views
0

我想将我的SQL部署脚本包装在事务中(包含一堆模式更改)。我这样做是因为如果其中一部分失败,我希望数据库恢复到运行脚本之前的状态。用于部署脚本的Sql Server 2005事务

我有几个简单的问题,我想之前推动这些变化已经解决:

  1. 是否有必要明确调用的脚本的底部上的事务提交?
  2. 是否有必要明确地检查错误并在底部调用ROLLBACK,或者仅仅使用事务提供这种效果?

回答

2
  1. 是的。

  2. 是的。

您还应该调查SET XACT_ABORT ONSET XACT_ABORT ON指示SQL Server回滚整个事务,并在发生运行时错误时中止批处理。

这篇文章Error Handling in SQL 2005 and Later值得一读。