sp_attach_single_file_db (Transact-SQL)
將只有一個資料檔的資料庫附加至目前的伺服器。 sp_attach_single_file_db 不能搭配多個資料檔來使用。
重要事項 |
---|
未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您改用 CREATE DATABASE database_name FOR ATTACH。如需詳細資訊,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。請勿在複寫資料庫上使用此程序。 |
安全性注意事項 |
---|
建議您不要附加或還原來源不明或來源不受信任的資料庫。這種資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構而造成錯誤。使用來源不明或來源不受信任的資料庫之前,請先在非實際執行伺服器的資料庫上執行 DBCC CHECKDB,同時檢查資料庫中的程式碼,例如預存程序或其他使用者定義程式碼。 |
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
sp_attach_single_file_db [ @dbname= ] 'dbname'
, [ @physname= ] 'physical_name'
引數
[ @dbname= ] 'dbname'
這是要附加至伺服器的資料庫名稱。 名稱必須是唯一的。 dbname 是 sysname,預設值是 NULL。[ @physname= ] 'physical_name'
這是資料庫檔案的實體名稱,其中包括路徑。 physical_name 是 nvarchar(260),預設值是 NULL。注意
這個引數對應到 CREATE DATABASE 陳述式的 FILENAME 參數。如需詳細資訊,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。
當您將包含全文檢索目錄檔案的 SQL Server 2005 資料庫附加至 SQL Server 2014 伺服器執行個體時,系統就會從先前的位置附加這些目錄檔案以及其他資料庫檔案,此行為與 SQL Server 2005 的行為相同。 如需詳細資訊,請參閱<升級全文檢索搜尋>。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
無
備註
只對先前使用明確的 sp_detach_db 作業從伺服器上卸離的資料庫使用 sp_attach_single_file_db,或對已複製的資料庫使用它。
sp_attach_single_file_db 只適用於有單一記錄檔的資料庫。 當 sp_attach_single_file_db 將資料庫附加至伺服器時,它會建立一個新的記錄檔。 如果資料庫是唯讀的,就會在先前的位置建立記錄檔。
注意
無法卸離或附加資料庫快照集。
請勿在複寫資料庫上使用此程序。
權限
如需有關附加資料庫時如何處理權限的詳細資訊,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。
範例
下列範例會卸離 AdventureWorks2012 ,再從 AdventureWorks2012 中,將一個檔案附加至目前的伺服器。
USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2012';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2012',
@physname =
N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';