SQL Server 单用户模式到多用户模式

最近遇到 SQL Server 数据库的数据从其它库同步导入,同时也无法删除的问题。一开始的直接以为数据库被锁死,执行下面SQL语句查询相关被锁的表:

1
2
3
4
5
6
7
USE 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
12
USE [master]
GO

--查询运行的用户
SELECT * FROM master.dbo.sysprocesses
WHERE dbid=db_id('dbname')

--将第一个语句运行后的结果替代 spid
Kill spid

--修改为多用户模式
ALTER DATABASE DBNAME SET MULTI_USER