交易后冻结的数据

时间:2017-05-30 09:57:45

标签: sql sql-server sql-server-2008 transactions

我想对表(我们可以命名为“table1”)进行一些更新,因为我们的生产服务器,我想使用一个事务。

我写了一个这样的脚本:

BEGIN TRANSACTION T1

UPDATE table1 SET ...

SELECT * FROM table1 WHERE ...

正如您所看到的,我忘记了提交/回滚语句。

之后我想在这个表上做另一个选择,我得到了一个查询超时错误。

我猜测我的事务阻塞了我的表,所以我又做了一次完全相同的事务,但这次是使用commit语句。

但是我的表仍然被阻止,我不知道如何提交/回滚第一个等待的事务。

我还尝试用“COMMIT TRANSACTION T1”编写一个新查询,但是我收到一条错误,告诉我COMMIT语句需要一个相应的BEGIN语句。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您运行第一个查询的会话仍处于活动状态。如果您通过SSMS运行它,那么使用该会话从那里运行Commit \ Rollback。如果找不到,请使用Activity Monitor或sp_who2或其他类型方法找到会话并将其终止。

您无法在其他会话中修改交易。