重新命名資料庫
適用於: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 陳述式。
限制
無法重新命名系統資料庫。
其他使用者正在存取資料庫時,無法變更資料庫名稱。
使用 SSMS 活動監視器,尋找資料庫的其他連線,並加以關閉。 如需詳細資訊,請參閱在 SQL Server Management Studio (SSMS) 中開啟活動監視器。
在 SQL Server 中,您可以設定單一使用者模式的資料庫,以關閉任何開啟的連線。 如需詳細資訊,請參閱將資料庫設定為單一使用者模式。
在 Azure SQL 資料庫中,您必須確定沒有任何其他使用者有要重新命名之資料庫的開啟連線。
重新命名資料庫並不會變更磁碟上資料庫檔案的實體名稱,或檔案的邏輯名稱。 如需相關資訊,請參閱 Database Files and Filegroups。
您無法重新命名在作用中異地複寫關聯性中設定的 Azure SQL 資料庫。
權限
需要資料庫的 ALTER
權限。
使用 SQL Server Management Studio (SSMS)
使用 SSMS,透過下列步驟重新命名 SQL Server 或 Azure SQL 資料庫。
在 SSMS 中,選取 [物件總管]。 若要開啟 [物件總管],請選取 F8。 或者,在上層功能表上,選取 [檢視]>[物件總管]:
在 [物件總管] 中,連線到 SQL Server 的執行個體,然後展開該執行個體。
請確定資料庫沒有任何開啟的連線。 如果您使用 SQL Server,則可以將資料庫設定為單一使用者模式關閉任何開啟的連線,並防止其他使用者在您變更資料庫名稱時連線。
在 [物件總管] 中,展開 [資料庫],並以滑鼠右鍵按一下要重新命名的資料庫,然後選取 [重新命名]。
輸入新的資料庫名稱,然後選取 [確定]
如果資料庫是預設資料庫,請參閱在重新命名之後重設預設資料庫。
重新整理 [物件總管] 中的資料庫清單。
使用 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