我正在研究SQL SERVER 2008& 2008 R2。 如何在多用户模式下重命名数据库? 我正在使用sp_rename,但它返回此错误:
Msg 15225,Level 11,State 1,Procedure sp_rename,Line 338
答案 0 :(得分:33)
您无法在数据库正在使用时重命名该数据库。要么等待维护窗口,要么强制数据库进入单用户模式(这将使所有人都退出):
USE [master];
GO
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
--EXEC sys.sp_renamedb @dbname = N'foo', @newname = N'bar';
ALTER DATABASE foo MODIFY NAME = bar; -- preferred way
GO
ALTER DATABASE bar SET MULTI_USER;
答案 1 :(得分:6)
您不能使用sp_rename重命名数据库 - 有问题的sp将是sp_renamedb。但是,这在SQL Server的未来版本中将被删除,首选方法是:
ALTER DATABASE dbname MODIFY NAME = newdbname;
但是如果没有对数据库的独占锁定,你无法做到这一点。
答案 2 :(得分:0)
你可以打开sql server配置管理器并停止并启动服务,这对我来说对sql server 2008和2012很有用。
然后在sql server management studio中重命名数据库。
“为我工作”
不是一个“警告”,但是你想要恢复完全相同的数据库,你进入选项并更改mdf和ldf的名称