データベースの名前変更
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
この記事では、SQL Server Management Studio (SSMS) または Transact-SQL (T-SQL) を使用して、SQL Server、Azure SQL データベース、Azure SQL Managed Instance のユーザー定義データベースの名前を変更する方法について説明します。 識別子の規則に従っていれば、データベースの名前にはいずれの文字も使用できます。
Note
Azure Synapse Analytics または Parallel Data Warehouse でデータベースの名前を変更するには、[RENAME] ステートメントを使用します。
制限事項
システム データベースの名前は変更できません。
他のユーザーがデータベースにアクセスしている間は、データベースの名前を変更することはできません。
SSMS Activity Monitor を使用して、データベースへのその他の接続を検索し、それらを閉じます。 詳細については、「SQL Server Management Studio (SSMS) で利用状況モニターを開く」を参照してください。
SQL Server では、データベースをシングル ユーザー モードに設定することで、開いているすべての接続を閉じることができます。 詳細については、「 データベースをシングル ユーザー モードに設定する」を参照してください。
Azure SQL Database では、名前を変更するデータベースに対して他のユーザーが接続を開いていないことを確認する必要があります。
データベースの名前を変更しても、ディスク上のデータベース ファイルの物理名やファイルの論理名は変更されません。 詳細については、「 Database Files and Filegroups」を参照してください。
アクティブ geo レプリケーションリレーションシップで構成された Azure SQL データベースの名前を変更することはできません。
アクセス許可
データベースに対する ALTER
権限が必要です。
SQL Server Management Studio (SSMS) の使用
SSMS を使用して SQL Server または Azure SQL データベースの名前を変更するには、次の手順を使用します。
SSMS で [オブジェクト エクスプローラー] を選択します。 [オブジェクト エクスプローラー] を開くには、F8 キーを押します。 トップ メニューで、[表示]、[>]、[オブジェクト エクスプローラー]の順に選択します。
[オブジェクト エクスプローラー]で、SQL Server のインスタンスに接続して、そのインスタンスを展開します。
データベースに対して開いている接続がないことを確認します。 SQL Server を使用している場合は、データベースをシングル ユーザー モードに設定することで、開いているすべての接続を閉じ、データベース名の変更中は他のユーザーが接続できないようにすることができます。
オブジェクト エクスプローラーで [データベース] を展開し、名前を変更するデータベースを右クリックし、[名前の変更] を選択します。
新しいデータベース名を入力し、[OK] を選択します。
データベースがご利用の既定のデータベースであった場合は、「名称変更後、既定のデータベースを再設定する」を参照してください。
オブジェクト エクスプローラーのデータベース一覧を最新の情報に更新します。
Transact-SQL の使用
SQL Server データベースをシングル ユーザー モードにして名前を変更する
SSMS で T-SQL を使用して SQL Server データベースの名前を変更するには、次の手順を使用します。これには、データベースをシングル ユーザー モードにする手順も含まれます。 この例では、名前の変更後、データベースをマルチ ユーザー モードに戻します。
インスタンスの
master
データベースに接続します。クエリ ウィンドウを開きます。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、
MyTestDatabase
データベースの名前をMyTestDatabaseCopy
に変更します。警告
排他的なアクセスを迅速に取得するために、このコード サンプルでは終了オプション
WITH ROLLBACK IMMEDIATE
を使用します。 これですべての未完了のトランザクションがロールバックされ、MyTestDatabase
データベースへの他のすべての接続は直ちに切断されます。USE master; GO ALTER DATABASE MyTestDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy; GO ALTER DATABASE MyTestDatabaseCopy SET MULTI_USER; GO
任意で、データベースがご利用の既定のデータベースであった場合、「名称変更後、既定のデータベースを再設定する」を参照してください。
Azure SQL データベースの名前を変更する
SQL Server Management Studio で T-SQL を使用して Azure SQL データベースの名前を変更するには、次の手順を使用します。
インスタンスの
master
データベースに接続します。クエリ ウィンドウを開きます。
データベースが使用されていないことを確認します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、
MyTestDatabase
データベースの名前をMyTestDatabaseCopy
に変更します。ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy;
データベースの名前を変更した後のバックアップ
SQL Server 内のデータベースの名前を変更した後、master
データベースをバックアップします。 Azure SQL データベースでは、自動的にバックアップが発生するため、このプロセスは不要です。
名称変更後、既定のデータベースを再設定する
名前を変更するデータベースが SQL Server ログインの既定のデータベースとして設定されている場合、エラー 4064、Can't open user default database
が発生する可能性があります。 次のコマンドを使用して、既定値を名前を変更したデータベースに変更します。
USE [master]
GO
ALTER LOGIN [login] WITH DEFAULT_DATABASE=[new-database-name];
GO