附加資料庫
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2014 中附加資料庫。 您可以使用此功能來複製、移動或升級 SQL Server 資料庫。
本主題內容
開始之前:
若要使用:
待處理: 升級資料庫之後
開始之前
必要條件
資料庫必須先卸離。 嘗試附加尚未中斷連結的資料庫將會傳回錯誤。 如需詳細資訊,請參閱 卸離資料庫。
當您附加資料庫時,所有數據檔 (MDF 和 LDF 檔案) 都必須可供使用。 如果資料檔案的路徑與資料庫第一次建立或最後一次附加時的路徑不同,您必須指定檔案的目前路徑。
當您附加資料庫時,如果 MDF 和 LDF 檔案位於不同的目錄中,且其中一個路徑包含 \\?\GlobalRoot,作業將會失敗。
建議
建議您使用 ALTER DATABASE
計劃性重新配置程式來移動資料庫,而不是使用卸離和附加。 如需詳細資訊,請參閱 移動使用者資料庫。
安全性
檔案存取權限是在數個資料庫作業期間設定,包括卸離或附加資料庫。 如需在卸離和附加資料庫時所設定之檔案許可權的相關信息,請參閱 保護 SQL Server 2008 R2 在線叢書中的數據和記錄檔 。
建議您不要附加或還原來源不明或來源不受信任的資料庫。 此類資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構而造成錯誤。 使用來源不明或來源不受信任的資料庫之前,請先在非實際執行伺服器的資料庫上執行 DBCC CHECKDB ,同時檢查資料庫中的程式碼,例如預存程序或其他使用者定義程式碼。 如需附加資料庫的詳細資訊,以及附加資料庫時,對中繼資料所做變更的相關資訊,請參閱 資料庫卸離與附加 (SQL Server)。
權限
需要 CREATE DATABASE
、CREATE ANY DATABASE
或 ALTER ANY DATABASE
權限。
使用 SQL Server Management Studio
附加資料庫
在 SQL Server Management Studio 物件總管 中,連接到 SQL Server 資料庫引擎 的實例,然後展開該實例。
以滑鼠右鍵按兩下 [ 資料庫 ],然後按兩下 [ 附加]。
在 [ 附加資料庫] 對話框中,若要指定要連結的資料庫,請按兩下 [新增];然後在 [尋找資料庫檔案 ] 對話框中,選取資料庫所在的磁碟驅動器,然後展開目錄樹狀目錄,以尋找並選取資料庫的.mdf檔案;例如:
C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf
重要
嘗試選取已經附加的資料庫,會產生錯誤。
[要附加的資料庫]
顯示有關所選資料庫的資訊。<無資料行標頭>
顯示指出附加作業之狀態的圖示。 可能的圖示將在以下的 [狀態] 描述中加以描述。MDF 檔案位置
顯示選取之 MDF 檔的路徑和檔案名稱。Database Name
顯示資料庫的名稱。附加為
選擇性地針對要附加的資料庫指定不同的名稱。擁有者
提供包含可能的資料庫擁有者的下拉式清單,且您可以選擇性地從中選取不同的擁有者。狀態
根據下表顯示資料庫的狀態。圖示 狀態文字 描述 (無圖示) (沒有文字) 附加作業尚未啟動或是針對此物件進行暫止。 當對話方塊開啟時,這是預設的動作。 綠色、指向右方的三角形 進行中 附加作業已啟動,但尚未完成。 綠色的核取記號 Success 已順利附加物件。 包含白色十字的紅色圓圈 錯誤 附加作業發生錯誤,且未順利完成。 包含兩個黑色的象限 (在左方和右方) 以及兩個白色的象限 (在上方和下方) 已停止 附加作業未順利完成,因為使用者已停止作業。 包含指向逆時針方向之彎曲箭頭的圓圈 已回復 附加作業已順利完成,但是因為在附加其他物件的期間發生了錯誤,所以已將其回復。 訊息
顯示空白訊息或「找不到檔案」超連結。加入
尋找需要的主要資料庫檔案。 使用者選取 .mdf 檔案之後,適用的資訊會自動填入 [要附加的資料庫] 方格的對應欄位中。移除
從 [要附加的資料庫] 方格中移除選取的檔案。「<database_name>」資料庫詳細資料
顯示要附加之檔案的名稱。 若要確認或變更檔案的路徑名稱,請按一下 [瀏覽] 按鈕 ( ... )。注意
如果檔案不存在,訊息資料行會顯示「找不到」。如果找不到記錄檔,代表該檔案位於另一個目錄,或已經刪除。 您必須更新 [資料庫詳細資料] 方格中的檔案路徑,以指向正確的位置,或是從方格中移除該記錄檔。 如果找不到 .ndf 資料檔,您就必須更新該檔案在方格中的路徑,以指向正確的位置。
原始檔案名稱
顯示屬於資料庫之附加檔案的名稱。檔案類型
指出檔案的類型,即 資料 或 記錄。目前的檔案路徑
顯示選取之資料庫檔案的路徑。 路徑可以用手動的方式編輯。訊息
顯示空白訊息或 「找不到檔案」 超連結。
使用 TRANSACT-SQL
若要附加資料庫
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
使用 CREATE DATABASE 語句搭配
FOR ATTACH
close。複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會附加 AdventureWorks2012 資料庫的檔案,並將資料庫重新命名為
MyAdventureWorks
。CREATE DATABASE MyAdventureWorks ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') FOR ATTACH;
注意
或者,您可以使用 sp_attach_db 或 sp_attach_single_file_db 預存程序。 但是,Microsoft SQL Server 的未來版本將移除這些程序。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您使用 CREATE DATABASE ...請改用 FOR ATTACH。
待處理:升級 SQL Server 資料庫之後
使用附加方法升級資料庫時,資料庫會立即可供使用,並會自動升級。 如果資料庫具有全文檢索索引,升級程序就會根據 [全文檢索目錄升級選項] 伺服器屬性的設定,匯入、重設或重建這些索引。 如果升級選項設定為 [匯入] 或 [重建],則全文檢索索引在升級期間將無法使用。 根據進行索引的資料數量而定,匯入可能需要數個小時,而重建可能需要十倍以上的時間。 此外,請注意,當升級選項設定為 [匯入] 時,如果全文檢索目錄無法使用,系統就會重建相關聯的全文檢索索引。
如果使用者資料庫的相容性層級在升級前為 100 或更高層級,則在升級後仍會保持相同。 如果在升級之前相容性層級為 90,在升級的資料庫中,相容性層級會設定為 100,這是 SQL Server 2014 中支援的最低相容性層級。 如需詳細資訊,請參閱 ALTER DATABASE 相容性層級 (Transact-SQL)。