最近遇到 SQL Server 数据库的数据从其它库同步导入,同时也无法删除的问题。一开始的直接以为数据库被锁死,执行下面SQL
语句查询相关被锁的表:1
2
3
4
5
6
7USE yourdatabase;
GO
SELECT request_session_id AS spid,
OBJECT_NAME(resource_associated_entity_id) AS tableName
FROM sys.dm_tran_locks
WHERE resource_type='OBJECT';
结果并没有发现锁的存在,但是发现数据库设置是单用户模式。将单用户模式修改为多用户模式:1
2
3
4
5
6
7
8
9
10
11
12USE [master]
GO
--查询运行的用户
SELECT * FROM master.dbo.sysprocesses
WHERE dbid=db_id('dbname')
--将第一个语句运行后的结果替代 spid
Kill spid
--修改为多用户模式
ALTER DATABASE DBNAME SET MULTI_USER