數據庫事務一次性可以回滾多少條數據????
?
比如一次性提交了50萬條數據,有一個出錯,這50萬的數據統統都要回滾么???
4 回答
繁花如伊
TA貢獻2012條經驗 獲得超12個贊
sql serve可以使用分段事務,更新50萬數據改為分批更新的話,就可以了。
當 SET XACT_ABORT 為 OFF 時,有時只回滾產生錯誤的 Transact-SQL 語句,而事務將繼續進行處理。如果錯誤很嚴重,那么即使 SET XACT_ABORT 為 OFF,也可能回滾整個事務。OFF 是默認設置。
?
SET XACT_ABORT ?OFF ?
begin transaction t1?????????????????????? --開始一個事務t1
update a set x=1 where x is null???? --更新為值1
save transaction t2???????????????????????? --保存事務點t2
update b set y=2 where y is null????? --更新為值2
if @@error<>0??????????????????????????????? --判斷有無錯誤
rollback transaction t2???????????????????? --如果有,回滾到事務點t2
commit transaction t1?????????????????????? --提交事務t1
?
樓主可以看下SQL 分段事務。
- 4 回答
- 0 關注
- 386 瀏覽
添加回答
舉報
0/150
提交
取消
