附加資料庫

此主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2012 中附加資料庫。 您可以使用此功能來複製、移動或升級 SQL Server 資料庫。

本主題內容

  • 開始之前:

    必要條件

    建議

    安全性

  • 使用下列方法附加資料庫:

    SQL Server Management Studio

    Transact-SQL

  • 待處理:升級資料庫之後

開始之前

必要條件

  • 資料庫必須先卸離。 嘗試附加未卸離的資料庫會傳回錯誤。 如需詳細資訊,請參閱<卸離資料庫>。

  • 當您附加資料庫時,所有的資料檔 (MDF 和 NDF 檔案) 都必須可供使用。 如果資料檔的路徑與資料庫第一次建立或最後一次附加時的路徑不同,您必須指定檔案的目前路徑。

建議

建議您使用 ALTER DATABASE 計畫的重新配置程序來移動資料庫,而不要使用卸離和附加。 如需詳細資訊,請參閱<移動使用者資料庫>。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

安全性

檔案存取權限是在數個資料庫作業期間設定,包括卸離或附加資料庫。 如需有關卸離和附加資料庫時所設定之檔案權限的詳細資訊,請參閱《SQL Server 2008 R2 線上叢書》中的保護資料和記錄檔

建議您不要附加或還原來源不明或來源不受信任的資料庫。 這種資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構而造成錯誤。 使用來源不明或來源不受信任的資料庫之前,請先在非實際執行伺服器的資料庫上執行 DBCC CHECKDB,同時檢查資料庫中的程式碼,例如預存程序或其他使用者定義程式碼。 如需附加資料庫的詳細資訊,以及附加資料庫時,對中繼資料所做變更的相關資訊,請參閱<資料庫卸離與附加 (SQL Server)>。

權限

需要 CREATE DATABASE、CREATE ANY DATABASE 或 ALTER ANY DATABASE 權限。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

使用 SQL Server Management Studio

附加資料庫

  1. 在 SQL Server Management Studio 的 [物件總管] 中,連接到 SQL Server Database Engine 的執行個體,然後展開該執行個體。

  2. 以滑鼠右鍵按一下 [資料庫],然後按一下 [附加]

  3. [附加資料庫] 對話方塊中,若要指定要附加的資料庫,請按一下 [加入];在 [尋找資料庫檔案] 對話方塊中,選取資料庫所在的磁碟機、展開目錄樹狀結構,尋找並選取資料庫的 .mdf 檔案;例如:

    C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf

    重要事項重要事項

    嘗試選取已經附加的資料庫,會產生錯誤。

    • 要附加的資料庫
      顯示有關所選資料庫的資訊。

    • <無資料行標頭>
      顯示指出附加作業之狀態的圖示。 可能的圖示將在下面的 [狀態] 描述中加以描述。

    • MDF 檔案位置
      顯示選取之 MDF 檔的路徑和檔案名稱。

    • 資料庫名稱
      顯示資料庫的名稱。

    • 附加為
      選擇性地針對要附加的資料庫指定不同的名稱。

    • 擁有者
      提供包含可能的資料庫擁有者的下拉式清單,且您可以選擇性地從中選取不同的擁有者。

    • 狀態
      根據下表顯示資料庫的狀態。

      圖示

      狀態文字

      說明

      (無圖示)

      (沒有文字)

      附加作業尚未啟動或是針對此物件進行暫止。 當對話方塊開啟時,這是預設的動作。

      綠色、指向右方的三角形

      進行中

      附加作業已啟動,但尚未完成。

      綠色的核取記號

      成功

      已順利附加物件。

      包含白色十字的紅色圓圈

      錯誤

      附加作業發生錯誤,且未順利完成。

      包含兩個黑色的象限 (在左方和右方) 以及兩個白色的象限 (在上方和下方)

      已停止

      附加作業未順利完成,因為使用者已停止作業。

      包含指向逆時針方向之彎曲箭頭的圓圈

      已回復

      附加作業已順利完成,但是因為在附加其他物件的期間發生了錯誤,所以已將其回復。

    • 訊息
      顯示空白訊息或「找不到檔案」超連結。

    • 加入
      尋找需要的主要資料庫檔案。 使用者選取 .mdf 檔案之後,適用的資訊會自動填入 [要附加的資料庫] 方格的對應欄位中。

    • 移除
      [要附加的資料庫] 方格中移除選取的檔案。

    • " <database_name> " 資料庫詳細資料
      顯示要附加之檔案的名稱。 若要確認或變更檔案的路徑名稱,請按一下 [瀏覽] 按鈕 ([…])。

      [!附註]

      如果檔案不存在,[訊息] 資料行就會顯示「找不到」。如果找不到記錄檔,它就存在於其他目錄中,或是已遭刪除。 您必須更新 [資料庫詳細資料] 方格中的檔案路徑,以指向正確的位置,或是從方格中移除該記錄檔。 如果 找不到 .ndf 資料檔,您就必須更新該檔案在方格中的路徑,以指向正確的位置。

    • 原始檔案名稱
      顯示屬於資料庫之附加檔案的名稱。

    • 檔案類型
      指出檔案的類型,即資料記錄

    • 目前的檔案路徑
      顯示選取之資料庫檔案的路徑。 路徑可以用手動的方式編輯。

    • 訊息
      顯示空白訊息或**「找不到檔案」**超連結。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

使用 Transact-SQL

若要附加資料庫

  1. 連接到 Database Engine。

  2. 在標準列中,按一下 [新增查詢]

  3. 搭配 FOR ATTACH 子句使用 CREATE DATABASE 陳述式。

    將下列範例複製並貼入查詢視窗中,然後按一下 [執行]。 這個範例會附加 AdventureWorks2012 資料庫的檔案,並將資料庫重新命名為 MyAdventureWorks。

    CREATE DATABASE MyAdventureWorks 
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), 
        (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') 
        FOR ATTACH; 
    

    [!附註]

    或者,您可以使用 sp_attach_dbsp_attach_single_file_db 預存程序。 但是,Microsoft SQL Server 的未來版本將移除這些程序。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您改用 CREATE DATABASE … FOR ATTACH。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

待處理:升級 SQL Server 資料庫之後

當您使用附加方法升級資料庫之後,該資料庫會立即可用並自動升級。 如果資料庫具有全文檢索索引,升級程序就會根據 [全文檢索目錄升級選項] 伺服器屬性的設定,匯入、重設或重建這些索引。 如果升級選項設定為 [匯入][重建],則全文檢索索引在升級期間將無法使用。 根據進行索引的資料數量而定,匯入可能需要數個小時,而重建可能需要十倍以上的時間。 此外,請注意,當升級選項設定為 [匯入] 時,如果全文檢索目錄無法使用,系統就會重建相關聯的全文檢索索引。

如果使用者資料庫的相容性層級在升級前為 90 或 100,則在升級後仍會保持相同。 如果升級前的相容性層級為 80 或更小,則在升級後的資料庫中,相容性層級會設定為 90 (這是 SQL Server 2012 所支援的最低相容性層級)。 如需詳細資訊,請參閱<ALTER DATABASE 相容性層級 (Transact-SQL)>。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

請參閱

參考

CREATE DATABASE (Transact-SQL)

概念

卸離資料庫