MSSQL 2008里事务的一个问题
生活随笔
收集整理的這篇文章主要介紹了
MSSQL 2008里事务的一个问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在試MSSQL2008里的事務,發現如果事務中某條語句的表名錯誤,就無法用@@error或try回滾,具體如下:
begin tran
?delete from test where id = 5????--正確語句
?dealete from testa where id1 = 4????--表名錯誤,testa?表不存在
?if @@error > 0
??begin
???rollback
???return
??end
commit
這樣就不能回滾。
begin tran
?delete from test where id = 5????--正確語句
?dealete from test where id1 = 4????--字段錯誤,字段id1不存在
?if @@error > 0
??begin
???rollback
???return
??end
commit
這樣可以回滾。
不知道是這是MSSQL2008的一個bug,還是我寫的有問題。
begin tran
?delete from test where id = 5????--正確語句
?dealete from testa where id1 = 4????--表名錯誤,testa?表不存在
?if @@error > 0
??begin
???rollback
???return
??end
commit
這樣就不能回滾。
begin tran
?delete from test where id = 5????--正確語句
?dealete from test where id1 = 4????--字段錯誤,字段id1不存在
?if @@error > 0
??begin
???rollback
???return
??end
commit
這樣可以回滾。
不知道是這是MSSQL2008的一個bug,還是我寫的有問題。
轉載于:https://www.cnblogs.com/Sandheart/archive/2008/04/07/1140551.html
總結
以上是生活随笔為你收集整理的MSSQL 2008里事务的一个问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “水绕芦花月满船”上一句是什么
- 下一篇: c#中分割字符串的几种方法