Sql-Server

這是 SQL Server 的 ROLLBACK 文件中的錯誤嗎?

  • April 13, 2021

是 SQL Server 的文件中談到的ROLLBACK語句。在該頁面上,它聲明它的語法如下:

ROLLBACK { TRAN | TRANSACTION }   
    [ transaction_name | @tran_name_variable  
    | savepoint_name | @savepoint_variable ]   
[ ; ]  

顯然方括號內的內容是可選的,看來您應該從TRAN或中選擇一個TRASACTION。但實際上你可以完全省略兩者,這ROLLBACK是一個完全有效的陳述。這是一個錯誤還是故意的?

ROLLBACK TRANSACTION文件是正確的,儘管在沒有其他上下文的情況下不清楚。

ROLLBACK是類似ROLLBACK WORK語句的簡寫,而不是ROLLBACK TRANSACTION. ROLLBACK WORK以下是文件頁面的摘錄:

回滾

$$ WORK $$ $$ ; $$ 此語句的功能與 ROLLBACK TRANSACTION 相同,只是 ROLLBACK TRANSACTION 接受使用者定義的事務名稱。無論是否指定可選的 WORK 關鍵字,此 ROLLBACK 語法都與 ISO 兼容。

嵌套事務時,ROLLBACK WORK 總是回滾到最外面的 BEGIN TRANSACTION 語句,並將@@TRANCOUNT 系統函式遞減為 0。

注意這同樣適用於類似的COMMIT TRANSACTIONCOMMIT WORK語句。

引用自:https://dba.stackexchange.com/questions/289619