データベースの名前変更
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
この記事では、SQL Server Management Studio (SSMS) または Transact-SQL (T-SQL) を使用して、SQL Server、Azure SQL データベース、または Azure SQL Managed Instance のユーザー定義データベースの名前を変更する方法について説明します。 識別子の規則に従っていれば、データベースの名前にはいずれの文字も使用できます。
注意
Azure Synapse Analytics または Parallel Data Warehouse でデータベースの名前を変更するには、RENAME (Transact-SQL) ステートメントを使用します。
制限事項と制約事項
- システム データベースの名前は変更できません。
- 他のユーザーがデータベースにアクセスしている間は、データベースの名前を変更することはできません。
- SQL Server Management Studio 利用状況モニターを使用して、データベースへの他の接続を検索し、それらを閉じます。 詳細については、「SQL Server Management Studio (SSMS) で利用状況モニターを開く」を参照してください。
- SQL Server では、データベースをシングル ユーザー モードに設定することで、開いているすべての接続を閉じることができます。 詳細については、「 データベースをシングル ユーザー モードに設定する」を参照してください。
- Azure SQL Database では、名前を変更するデータベースに対して他のユーザーが接続を開いていないことを確認する必要があります。
- データベースの名前を変更しても、ディスク上のデータベース ファイルの物理名やファイルの論理名は変更されません。 詳細については、「 Database Files and Filegroups」を参照してください。
- アクティブ geo レプリケーション リレーションシップで構成された Azure SQL データベースの名前を変更することはできません。
アクセス許可
データベースに対する ALTER 権限が必要です。
SQL Server Management Studio の使用 [SQL Server]
SQL Server Management Studio を使用して SQL Server または Azure SQL データベースの名前を変更するには、次の手順を使用します。
SQL Server Management Studio で [オブジェクト エクスプローラー] を選択します。 オブジェクト エクスプローラーを開くには、F8 キーを押します。 または、上部メニューで [表示]、[オブジェクト エクスプローラー] の順に選択します。
[オブジェクト エクスプローラー]で、SQL Server のインスタンスに接続して、そのインスタンスを展開します。
データベースに対して開いている接続がないことを確認します。 SQL Server を使用している場合は、データベースをシングル ユーザー モードに設定することで、開いているすべての接続を閉じ、データベース名の変更中は他のユーザーが接続できないようにすることができます。
オブジェクト エクスプローラーで [データベース] を展開し、名前を変更するデータベースを右クリックし、[名前の変更] を選択します。
新しいデータベース名を入力し、[OK] を選択します。
データベースがご利用の既定のデータベースであった場合は、「名称変更後、既定のデータベースを再設定する」を参照してください。
オブジェクト エクスプローラーのデータベース一覧を最新の情報に更新します。
Transact-SQL の使用
SQL Server データベースをシングル ユーザー モードにすることで名前を変更するには
SQL Server Management Studio で 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 Database データベースの名前を変更するには
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、Cannot open user default database
が発生する可能性があります。 次のコマンドを使用して、既定値を名前を変更したデータベースに変更します。
USE [master]
GO
ALTER LOGIN [login] WITH DEFAULT_DATABASE=[new-database-name];
GO
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示