4

嗨,有时我会SQL Server因为未打开的未知事务或锁定表而遇到问题,我阅读了许多建议以避免重新启动服务器
,直到我发现这一点,而且似乎有效
你有其他建议释放锁和回滚传输吗?
因为我保留在生产服务器上运行它

USE master;
GO
ALTER DATABASE [db_dev]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [db_dev]
SET MULTI_USER;
GO
4

2 回答 2

9

您可以通过使用检查是什么阻止了您的进程

sp_who2

然后

kill spid

将其设置为 single_user 然后恢复将删除与该数据库的所有连接。在生产服务器上可能非常危险。

于 2013-09-30T06:02:00.093 回答
1

如果您锁定了一张桌子,您可以使用以下代码将其杀死:

    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
于 2019-09-20T20:38:13.763 回答