Hy,有时我遇到SQL Server
的问题,因为未知的事务被打开或锁定表,我读了很多建议以避免重启服务器
直到我发现这一点,它似乎工作了
你有其他建议释放锁和回滚trans?
因为我保留在生产服务器上运行它
USE master;
GO
ALTER DATABASE [db_dev]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [db_dev]
SET MULTI_USER;
GO
答案 0 :(得分:9)
您可以使用
查看阻止您的流程的内容sp_who2
然后
kill spid
将其设置为single_user然后还原将删除与该数据库的所有连接。在生产服务器上可能非常危险。
答案 1 :(得分:0)
如果您锁定了表,则可以使用以下代码将其杀死:
SELECT OBJECT_NAME(P.object_id) AS TableName,
Resource_type,
request_session_id
FROM sys.dm_tran_locks AS L
JOIN sys.partitions AS P ON L.resource_associated_entity_id = p.hobt_id
WHERE OBJECT_NAME(P.object_id) = '<Table_Name>';
GO
Kill session_ID