將資料庫中斷連結
適用於:SQL Server
本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中將資料庫中斷連結。 中斷連結的檔案不會遭到刪除,而是會保留在檔案系統中。 您可以使用 CREATE DATABASE ... FOR ATTACH
或 FOR ATTACH_REBUILD_LOG
選項重新連結這些檔案。 檔案也可以移至另一部伺服器,並連結至具有相同版本或更新版本的執行個體。
限制
如需限制事項的清單,請參閱資料庫中斷連結與連結 (SQL Server)。
權限
需要 db_owner 固定資料庫角色中的成員資格。
使用 SQL Server Management Studio
移動資料庫之前
如果您要移動資料庫,在將資料庫與其現有的 SQL Server 執行個體中斷連結之前,請使用 [資料庫屬性] 頁面來檢閱與資料庫相關聯的檔案及其目前的位置。
在 SQL Server Management Studio 的物件總管中,連線到 SQL Server 資料庫引擎的執行個體,然後展開該執行個體。
展開 [資料庫] ,並選取您想要卸離的使用者資料庫名稱。
以滑鼠右鍵按一下資料庫名稱,然後選取 [屬性]。 選取 [檔案] 頁面,然後檢閱 [資料庫檔案:] 資料表中的項目。
在中斷連結、移動和連結之前,請務必將與資料庫相關聯的所有檔案納入考量。 然後,繼續進行下一節中的中斷連結步驟。 如需在新的位置連結資料庫的詳細資訊,請參閱連結資料庫。
將資料庫中斷連結
在 SQL Server Management Studio 的物件總管中,連線到 SQL Server 資料庫引擎的執行個體,然後展開該執行個體。
展開 [資料庫] ,並選取您想要卸離的使用者資料庫名稱。
以滑鼠右鍵按一下資料庫名稱,指向 [工作],然後選取 [中斷連結]。 [卸離資料庫] 對話方塊隨即出現。
要中斷連結的資料庫:列出要中斷連結的資料庫。
資料庫名稱:顯示要中斷連結的資料庫名稱。
中斷連線:中斷到指定資料庫的連線。
注意
您無法卸離具有使用中連接的資料庫。
更新統計資料:依預設,中斷連結作業會在中斷連結資料庫時保留任何過時的最佳化統計資料;若要更新現有的最佳化統計資料,請選取此核取方塊。
保留全文檢索目錄:依預設,中斷連結作業會保留與該資料庫關聯的任何全文檢索目錄。 若要移除這些全文檢索目錄,請清除 [保留全文檢索目錄] 核取方塊。 只有當您從 SQL Server 2005 (9.x) 升級資料庫時,才會出現這個選項。
狀態狀態:顯示下列其中一個狀態:[就緒] 或 [未就緒]。
訊息:[訊息] 資料行可能顯示有關資料庫的資訊,如下所示:
當資料庫涉及複寫時, [狀態] 為 [尚未備妥] 且 [訊息] 資料行會顯示 [資料庫已複寫] 。
當資料庫有一或多個使用中的連線時,[狀態] 為 [未就緒] 且 [訊息] 資料行顯示 <使用中連線數目> 個使用中的連線。 例如:1 個使用中的連線。 您必須先選取 [卸除連線] 來中斷任何使用中的連線,然後才能將資料庫中斷連結。
若要取得有關訊息的詳細資訊,請選取超連結文字,以開啟活動監視器。
準備好中斷連結資料庫時,請選取 [確定]。
注意
重新整理檢視之前,仍可在 [物件總管] 的 [資料庫] 節點中看見最新卸離的資料庫。 您可以隨時重新整理檢視:選取 [物件總管] 窗格,並從選單列選取 [檢視],然後選取 [重新整理]。
使用 Transact-SQL
移動資料庫之前
如果您要移動資料庫,在將資料庫與其現有的 SQL Server 執行個體中斷連結之前,請使用 sys.database_files
系統目錄檢視來檢閱與資料庫相關聯的檔案及其目前的位置。 如需詳細資訊,請參閱 sys.database_files (Transact-SQL)。
在 SQL Server Management Studio 中,選取 [新增查詢] 以開啟查詢編輯器。
將下列 Transact-SQL 指令碼複製到查詢編輯器,然後選取 [執行]。 此指令碼會顯示實體資料庫檔案的位置。 在透過中斷連結/連結來移動資料庫時,請將所有檔案納入考量。
USE [database_name] GO SELECT type_desc, name, physical_name FROM sys.database_files;
在中斷連結、移動和連結之前,請務必將與資料庫相關聯的所有檔案納入考量。 然後,繼續進行下一節中的中斷連結步驟。 如需在新的位置連結資料庫的詳細資訊,請參閱連結資料庫。
將資料庫中斷連結
連線至資料庫引擎。
在標準列上,選取 [新增查詢]。
複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 此範例會將
AdventureWorks2022
選項設定為skipchecks
,以中斷連結true
資料庫。 如需詳細資訊,請參閱 sp_detach_db。EXEC sp_detach_db 'AdventureWorks2022', 'true';