私は 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;
ただし、データベースの排他ロックがなければ、とにかくこれを行うことはできません。