【发布时间】:2012-01-03 07:18:43
【问题描述】:
在 sql server 2008 中,我使用的是这样的模式:
begin transaction
begin try
/* do something */
end try
begin catch
if @@TRANCOUNT > 0
rollback
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity,1)
end catch
if @@TRANCOUNT > 0
commit transaction
当我点击 Sql Server Management Studio 上的“取消执行查询”按钮时,它会取消查询并使事务保持打开状态。
这是预期的行为吗?还是我的模式有错误。它不应该回滚事务吗?
【问题讨论】:
标签: sql sql-server-2008 transactions