如何在多用户模式下重命名数据库

时间:2012-06-13 11:57:00

标签: sql-server-2008 sql-server-2008-r2

我正在研究SQL SERVER 2008& 2008 R2。 如何在多用户模式下重命名数据库? 我正在使用sp_rename,但它返回此错误:

  

Msg 15225,Level 11,State 1,Procedure sp_rename,Line 338

3 个答案:

答案 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的名称