我正在研究 SQL SERVER 2008 和 2008 R2。如何在多用户模式下重命名数据库?我正在使用 sp_rename 但它返回此错误:
消息 15225,级别 11,状态 1,过程 sp_rename,第 338 行
我正在研究 SQL SERVER 2008 和 2008 R2。如何在多用户模式下重命名数据库?我正在使用 sp_rename 但它返回此错误:
消息 15225,级别 11,状态 1,过程 sp_rename,第 338 行
您不能在使用数据库时重命名它。要么等待维护窗口,要么强制数据库进入单用户模式(这将把所有人踢出去):
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;
您不能使用 sp_rename 重命名数据库 - 有问题的 sp 将是 sp_renamedb。但是,这将在 SQL Server 的未来版本中删除,首选方法是:
ALTER DATABASE dbname MODIFY NAME = newdbname;
但是,如果没有数据库上的排他锁,无论如何您都无法做到这一点。
您可以打开 sql server 配置管理器并停止和启动服务,这对我来说适用于 sql server 2008 和 2012 就好了。
然后在 sql server management studio 中重命名数据库。
“为我工作”
不是真正的“警告”,而是说您想恢复完全相同的数据库,您进入选项并更改 mdf 和 ldf 的名称