0
我嘗試使用事務從我的表中刪除幾行。我使用三次命令刪除,其中兩個都可以,第三個包含錯誤。我想創建保存點並確認丟棄2個對象。但是我得到一個錯誤:當前事務不能被提交併且不能被回滾到一個保存點。回滾整個交易。這裏是我的代碼:SQL。無法回滾事務
BEGIN TRANSACTION
BEGIN TRY
DELETE FROM employee
WHERE ID = 101; --OK
DELETE FROM employee
WHERE Name = 'James'; --OK
SAVE TRANSACTION point_1;
DELETE FROM employee
WHERE ID = '11a'; --letters are not allowed
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION point_1
PRINT 'Error! Not all employees were deleted from database.'
END CATCH
任何人都可以幫我嗎?非常感謝你!
我試着這樣說:
BEGIN TRANSACTION
DELETE FROM employee
WHERE ID = 101;
DELETE FROM employee
WHERE Name = 'James';
SAVE TRANSACTION point_1;
BEGIN TRY
DELETE FROM employee
WHERE ID = '11a';
END TRY
BEGIN CATCH
if XACT_STATE() = -1
ROLLBACK TRANSACTION
if XACT_STATE() = 1 and @@TRANCOUNT = 0
ROLLBACK TRANSACTION
if XACT_STATE() = 1 and @@TRANCOUNT > 0
ROLLBACK TRANSACTION point_1
PRINT 'Error! Not all employees were deleted from database.'
END CATCH
有沒有錯誤,這一次,但前兩個對象不會被刪除。我的錯誤在哪裏?謝謝!
可能重複的[SQL事務錯誤:當前事務不能提交,並且不能支持寫入日誌文件的操作](http://stackoverflow.com/questions/7488149/sql-transaction-error-the-current -transaction-can-be-committed-and-can-su) –
我的查詢是通過不可提交的狀態。我怎樣才能返回到我的保存點? – user3443227