Sql-Server

選擇語句是否以自動送出模式啟動事務?

  • November 28, 2021

我知道更新,插入,刪除以自動送出模式啟動事務,我想問一下選擇語句是否也在自動送出模式下創建自己的事務,還是不需要?我也想知道 DDL 是否自動送出並開始他們自己的事務

Ps:如果這可能會使答案從一個 DBMS 到另一個不同,我正在使用 SQL 伺服器。

您可以使用事務 DMV來驗證這一點。例如,如果我啟動一個長時間執行的SELECT查詢,那麼以下查詢將至少返回一行:

SELECT *
FROM sys.dm_tran_active_transactions t
WHERE name = N'SELECT';

範例結果集:

在此處輸入圖像描述

您可以對 DDL 語句使用相同的方法,但值得考慮如果ALTER TABLE在完成之前失敗會發生什麼。您希望將表恢復到原始狀態,對嗎?否則您的數據庫將損壞。事務是允許回滾語句的機制。每當語句修改數據庫中的數據以避免數據庫損壞時,您將擁有一個帶有日誌記錄的事務。所以是的,DDL 語句必須使用事務。

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