我正在尝试运行以下查询
ALTER DATABASE my_db
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
DBCC SHRINKDATABASE (my_db, 2);
ALTER DATABASE my_db
SET MULTI_USER;
查询开始执行,数据库进入单用户模式,我看到我的cpu和磁盘使用率激增了几秒钟(介于5到20秒之间),然后出现错误。
Database 'my_db' is already open and can only have one user at a time.
在尝试在多用户模式下运行缩小时,我遇到了其他一些问题。在收缩运行时如何获得对数据库的独占访问权?
答案 0 :(得分:0)
执行此操作以避免他人使用唯一的连接:
USE master;
GO
ALTER DATABASE my_db
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
USE my_db; -- Grab that single connection immediately after db is in single_user mode
GO
DBCC SHRINKDATABASE (my_db, 2);
GO
ALTER DATABASE my_db
SET MULTI_USER;
GO
答案 1 :(得分:0)
您可以在这里做的是。 运行:
exec sp_who
这将返回给您该进程及其连接到您数据库的SP ID。
然后运行kill命令
KILL SPID