存储过程中事务未启用
存储过程中:
begin tran
delete from XX where yy='1'
delete from ZZ where aa=(select [A] from [B] where C=5)
...
commit tran
结果执行后
delete from XX where yy='1'--执行成功了
delete from ZZ where aa=(select [A] from [B] where C=5)子查询不止返回一个 删除出错
这样事务是不是没有生效? 还有“子查询不止返回一个 ”删除错误?
------解决方案--------------------演示而已,实际上@@error是上一条语句的状态,所以用处不大,要么用set xact_abort on 要么用try/catch
------解决方案--------------------事务开始前,set xact_abort on即可,
参考http://msdn.microsoft.com/zh-tw/library/ms188792(v=sql.105).aspx