分享方式:


重新命名資料庫

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體

本文描述了如何使用 SQL Server Management Studio (SSMS) 或 Transact-SQL (T-SQL),在 SQL Server、Azure SQL 資料庫或 Azure SQL 受控執行個體中重新命名使用者定義的資料庫。 資料庫的名稱可以包含任何依照識別碼規則的字元。

注意

若要重新命名 Azure Synapse Analytics 或平行處理資料倉儲中的資料庫,請使用 RENAME 陳述式。

限制

  • 無法重新命名系統資料庫。

  • 其他使用者正在存取資料庫時,無法變更資料庫名稱。

  • 重新命名資料庫並不會變更磁碟上資料庫檔案的實體名稱,或檔案的邏輯名稱。 如需相關資訊,請參閱 Database Files and Filegroups

  • 您無法重新命名在作用中異地複寫關聯性中設定的 Azure SQL 資料庫。

權限

需要資料庫的 ALTER 權限。

使用 SQL Server Management Studio (SSMS)

使用 SSMS,透過下列步驟重新命名 SQL Server 或 Azure SQL 資料庫。

  1. 在 SSMS 中,選取 [物件總管]。 若要開啟 [物件總管],請選取 F8。 或者,在上層功能表上,選取 [檢視]>[物件總管]

  2. 在 [物件總管] 中,連線到 SQL Server 的執行個體,然後展開該執行個體。

  3. 請確定資料庫沒有任何開啟的連線。 如果您使用 SQL Server,則可以將資料庫設定為單一使用者模式關閉任何開啟的連線,並防止其他使用者在您變更資料庫名稱時連線。

  4. 在 [物件總管] 中,展開 [資料庫],並以滑鼠右鍵按一下要重新命名的資料庫,然後選取 [重新命名]。

  5. 輸入新的資料庫名稱,然後選取 [確定]

  6. 如果資料庫是預設資料庫,請參閱在重新命名之後重設預設資料庫

  7. 重新整理 [物件總管] 中的資料庫清單。

使用 Transact-SQL

讓 SQL Server 資料庫進入單一使用者模式以重新予以命名

使用下列步驟,在 SSMS 中使用 T-SQL 重新命名 SQL Server 資料庫,包括將資料庫置於單一使用者模式的步驟。 重新命名之後,這個範例會將資料庫置於多使用者模式中。

  1. 連線至您執行個體的 master 資料庫。

  2. 開啟查詢視窗。

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 這個範例會將 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
    
  4. (選擇性) 如果資料庫是您的預設資料庫,請參閱在重新命名之後重設您的預設資料庫

重新命名 Azure SQL 資料庫

在 SQL Server Management Studio 中使用 T-SQL,透過下列步驟重新命名 Azure SQL 資料庫。

  1. 連線至您執行個體的 master 資料庫。

  2. 開啟查詢視窗。

  3. 請確定沒有人正在使用資料庫。

  4. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 這個範例會將 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