14

私は SQL SERVER 2008 & 2008 R2 に取り組んでいます。マルチユーザー モードでデータベースの名前を変更するにはどうすればよいですか? sp_rename を使用していますが、次のエラーが返されます。

メッセージ 15225、レベル 11、状態 1、プロシージャ sp_rename、行 338

4

3 に答える 3

37

使用中のデータベースの名前は変更できません。メンテナンス ウィンドウを待つか、データベースを強制的にシングル ユーザー モードにします (全員を追い出します)。

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;
于 2012-06-13T12:05:16.203 に答える
7

sp_rename を使用してデータベースの名前を変更することはできません。問題の sp は sp_renamedb です。ただし、これは SQL Server の将来のバージョンで削除される予定であり、推奨される方法は次のとおりです。

ALTER DATABASE dbname MODIFY NAME = newdbname;

ただし、データベースの排他ロックがなければ、とにかくこれを行うことはできません。

于 2012-06-13T12:07:10.063 に答える