將資料庫中斷連結

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中將資料庫中斷連結。 卸離的檔案不會刪除,而且會保留在文件系統中。 您可以使用 CREATE DATABASE ... FOR ATTACHFOR ATTACH_REBUILD_LOG 選項重新連結這些檔案。 檔案也可以移至另一部伺服器,並連結至具有相同版本或更新版本的執行個體。

限制

如需限制清單,請參閱 資料庫卸離和附加 (SQL Server)

權限

需要 db_owner 固定資料庫角色中的成員資格。

使用 SQL Server Management Studio

移動資料庫之前

如果您要移動資料庫,在將資料庫與現有的 SQL Server 實例中斷連結之前,請使用 [ 資料庫屬性 ] 頁面來檢閱與資料庫及其目前位置相關聯的檔案。

  1. 在 SQL Server Management Studio 的物件總管中,連線到 SQL Server 資料庫引擎的執行個體,然後展開該執行個體。

  2. 展開 [資料庫] ,並選取您想要卸離的使用者資料庫名稱。

  3. 以滑鼠右鍵按一下資料庫名稱,然後選取 [屬性]。 選取 [檔案] 頁面,然後檢閱 [資料庫檔案:] 資料表中的項目。

在中斷連結、移動和連結之前,請務必將與資料庫相關聯的所有檔案納入考量。 然後,繼續進行下一節中的中斷連結步驟。 如需在新的位置連結資料庫的詳細資訊,請參閱連結資料庫

將資料庫中斷連結

  1. 在 SQL Server Management Studio 的物件總管中,連線到 SQL Server 資料庫引擎的執行個體,然後展開該執行個體。

  2. 展開 [資料庫] ,並選取您想要卸離的使用者資料庫名稱。

  3. 以滑鼠右鍵按一下資料庫名稱,指向 [工作],然後選取 [中斷連結]。 [卸離資料庫] 對話方塊隨即出現。

    • 要卸離的資料庫:列出要卸離的資料庫。

    • 資料庫名稱:顯示要卸離的資料庫名稱。

    • 卸除 連線:中斷與指定資料庫的連線。

      注意

      您無法卸離具有使用中連接的資料庫。

    • 更新統計數據:根據預設,卸離作業會在卸離資料庫時保留任何過期的優化統計數據;若要更新現有的優化統計數據,請選取此複選框。

    • 保留全文檢索目錄:根據預設,卸離作業會保留與資料庫相關聯的任何全文檢索目錄。 若要移除這些全文檢索目錄,請清除 [保留全文檢索目錄] 核取方塊。 只有當您從 SQL Server 2005 (9.x) 升級資料庫時,才會出現這個選項。

    • 狀態:顯示下列其中一個狀態: 就緒尚未就緒

    • 訊息:訊息數據行可能會顯示資料庫的相關信息,如下所示:

      • 當資料庫涉及複寫時, [狀態][尚未備妥][訊息] 資料行會顯示 [資料庫已複寫]

      • 當資料庫有一或多個使用中的連線時,[狀態] 為 [未就緒] 且 [訊息] 資料行顯示 <使用中連線數目> 個使用中的連線。 例如:1 個使用中的連線。 您必須先選取 [卸除連線] 來中斷任何使用中的連線,然後才能將資料庫中斷連結。

      若要取得有關訊息的詳細資訊,請選取超連結文字,以開啟活動監視器。

  4. 當您準備好卸離資料庫時,請選取 [ 確定]。

注意

重新整理檢視之前,仍可在 [物件總管] 的 [資料庫] 節點中看見最新卸離的資料庫。 您可以隨時重新整理檢視:在 [物件總管] 窗格中選取 ,然後從功能表欄選取 [檢視],然後重新整理

使用 Transact-SQL

移動資料庫之前

如果您要移動資料庫,在將其與現有的 SQL Server 實例中斷連結之前,請使用 sys.database_files 系統目錄檢視來檢視與資料庫及其目前位置相關聯的檔案。 如需詳細資訊,請參閱 sys.database_files (Transact-SQL)

  1. 在 SQL Server Management Studio 中,選取 [新增查詢] 以開啟查詢編輯器。

  2. 將下列 Transact-SQL 指令碼複製到查詢編輯器,然後選取 [執行]。 此指令碼會顯示實體資料庫檔案的位置。 在透過中斷連結/連結來移動資料庫時,請將所有檔案納入考量。

    USE [database_name]
    GO
    
    SELECT type_desc, name, physical_name
    FROM sys.database_files;
    

在中斷連結、移動和連結之前,請務必將與資料庫相關聯的所有檔案納入考量。 然後,繼續進行下一節中的中斷連結步驟。 如需在新的位置連結資料庫的詳細資訊,請參閱連結資料庫

將資料庫中斷連結

  1. 連線至資料庫引擎。

  2. 在標準列上,選取 [新增查詢]。

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 此範例會將 AdventureWorks2022 選項設定為 skipchecks,以中斷連結 true 資料庫。 如需詳細資訊,請參閱 sp_detach_db

    EXEC sp_detach_db 'AdventureWorks2022', 'true';