Sql-Server
表上的 MS-SQL Server Implicit_transaction
我正在嘗試在 sql server 上嘗試implicit_transaction。但是,執行後:
SET IMPLICIT_TRANSACTIONS ON; INSERT INTO [Interface].[dbo].[Log] ([String], [Time], [theUser]) VALUES ((SELECT [String] FROM [Interface].[dbo].[Log] WHERE [ID] = '128'), null, 'ROW3'); SET IMPLICIT_TRANSACTIONS OFF;
但是,當我進行 SELECT 時,查詢會掛起。
我做錯什麼了?
從文件中:
由於此設置為 ON 而自動打開的事務必須在事務結束時由使用者顯式送出或回滾。否則,當使用者斷開連接時,事務及其包含的所有數據更改都會回滾。送出事務後,執行上述語句之一會啟動新事務。
所以,實際上,你這樣做了:
begin transaction; INSERT INTO [Interface].[dbo].[Log] ([String], [Time], [theUser]) VALUES ((SELECT [String] FROM [Interface].[dbo].[Log] WHERE [ID] = '128'), null, 'ROW3'); --no commit or rollback, so transaction is still open
簡而言之,您有一個需要處理的未結交易。