相关疑难解决方法(0)

ALTER DATABASE失败,因为无法将锁定放在数据库上

我需要重新启动数据库,因为某些进程无法正常工作.我的计划是让它脱机并重新上线.

我试图在Sql Server Management Studio 2008中执行此操作:

use master;
go
alter database qcvalues
set single_user
with rollback immediate;
alter database qcvalues
set multi_user;
go
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

Msg 5061, Level 16, State 1, Line 1
ALTER DATABASE failed because a lock could not be placed on database 'qcvalues'. Try again later.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
Msg 5061, Level 16, State 1, Line 4
ALTER DATABASE failed because a lock could not be placed on database …
Run Code Online (Sandbox Code Playgroud)

sql ssms sql-server-2008

124
推荐指数
2
解决办法
18万
查看次数

SQL Server使用立即回滚来更改数据库

有时(例如)通过执行以下命令将数据库设置为脱机时,将抛出异常,因为连接了一个或多个客户端:

ALTER DATABASE <dbname> SET OFFLINE
Run Code Online (Sandbox Code Playgroud)

根据这个答案,一个解决方案是with rollback immediate在最后使用:

ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE
Run Code Online (Sandbox Code Playgroud)

实际上为什么这会断开其他客户端的连接?这听起来像是一种非常明显的强制断开连接的方式,尽管它有效.

sql-server alter-table rollback

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

alter-table ×1

rollback ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

ssms ×1