我正在尝试在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;然而,当我去做一个选择,查询挂起。
我做错什么了?
发布于 2014-09-17 17:51:19
从文件中:
由于此设置处于打开状态而自动打开的事务必须由用户在事务结束时显式提交或回滚。否则,当用户断开连接时,事务及其包含的所有数据更改将回滚。提交事务后,执行上面的一条语句将启动一个新事务。
所以,实际上,你这样做了:
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简而言之,您有一个需要处理的开放事务。
https://serverfault.com/questions/629235
复制相似问题