如果存在任何問題,測試插入/更新失敗並回滾此事務的正確方法是什麼?我不認爲我所擁有的將會起作用,因爲我的插入/更新是3個獨立的語句,而@@ ROWCOUNT只會反映最後執行的語句。圍繞多次插入或更新使用事務的正確方法
BEGIN TRANSACTION Script;
GO
INSERT INTO TableA (id) VALUES (1)
INSERT INTO TableB (id) VALUES (1)
UPDATE TableC SET id=1 WHERE id=2
GO
IF (@@ROWCOUNT=3 AND @@ERROR=0)
BEGIN
COMMIT
END
ELSE
BEGIN
PRINT 'Error: Rolling back transaction'
ROLLBACK TRANSACTION Script
END
GO
這限制了我從打印失敗的消息,對不對? – 2012-04-24 17:26:08
@JoePhilllips請檢查我的更新答案。 – 2012-04-24 17:30:30
事務回滾時,SET XACT_ABORT ON屬性是否會引發錯誤消息? – Raza 2014-06-11 09:16:11