私はSQLSERVER2008および2008R2に取り組んでいます。マルチユーザーモードでデータベースの名前を変更するにはどうすればよいですか? 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 Server2008および2012で問題なく機能します。
次に、SQL Server ManagementStudioでデータベースの名前を変更します。
「私のために働く」
実際には「警告」ではありませんが、まったく同じデータベースを復元したい場合は、オプションに移動して、mdfとldfの名前を変更します。