我想对表(我们可以命名为“table1”)进行一些更新,因为我们的生产服务器,我想使用一个事务。
我写了一个这样的脚本:
BEGIN TRANSACTION T1
UPDATE table1 SET ...
SELECT * FROM table1 WHERE ...
正如您所看到的,我忘记了提交/回滚语句。
之后我想在这个表上做另一个选择,我得到了一个查询超时错误。
我猜测我的事务阻塞了我的表,所以我又做了一次完全相同的事务,但这次是使用commit语句。
但是我的表仍然被阻止,我不知道如何提交/回滚第一个等待的事务。
我还尝试用“COMMIT TRANSACTION T1”编写一个新查询,但是我收到一条错误,告诉我COMMIT语句需要一个相应的BEGIN语句。
我该怎么做?
答案 0 :(得分:1)
您运行第一个查询的会话仍处于活动状态。如果您通过SSMS运行它,那么使用该会话从那里运行Commit \ Rollback。如果找不到,请使用Activity Monitor或sp_who2或其他类型方法找到会话并将其终止。
您无法在其他会话中修改交易。