sp_attach_single_file_db (Transact-SQL)

適用於:SQL Server

將只有一個數據檔的資料庫附加至目前的伺服器。 sp_attach_single_file_db 無法與多個數據檔搭配使用。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 我們建議您改用 CREATE DATABASE <database_name> FOR ATTACH 。 如需詳細資訊,請參閱 CREATE DATABASE。 請勿在復寫的資料庫上使用這個程式。

請勿從未知或未受信任的來源附加或還原資料庫。 此類資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構而造成錯誤。 使用來源不明或來源不受信任的資料庫之前,請先在非實際執行伺服器的資料庫上執行 DBCC CHECKDB ,同時檢查資料庫中的程式碼,例如預存程序或其他使用者定義程式碼。

Transact-SQL 語法慣例

語法

sp_attach_single_file_db
    [ @dbname = ] N'dbname'
    , [ @physname = ] N'physname'
[ ; ]

引數

[ @dbname = ] N'dbname'

要附加至伺服器的資料庫名稱。 @dbname為 sysname,沒有預設值。

[ @physname = ] N'physname'

資料庫檔案的實體名稱,包括路徑。 @physname為 nvarchar(260),沒有預設值。

這個自變數會對應至 FILENAME 語句的 CREATE DATABASE 參數。 如需詳細資訊,請參閱 CREATE DATABASE

注意

當您將包含全文檢索目錄檔案的 SQL Server 2005 (9.x) 資料庫附加至較新的 SQL Server 伺服器實例時,目錄檔案會從先前的位置附加與其他資料庫檔案,與 SQL Server 2005 (9.x) 相同。 如需詳細資訊,請參閱 升級全文檢索搜尋

傳回碼值

0 (成功) 或 1 (失敗)。

結果集

無。

備註

sp_attach_single_file_db只使用明確sp_detach_db作業或複製的資料庫,在先前與伺服器中斷連結的資料庫上使用。

sp_attach_single_file_db 僅適用於具有單一記錄檔的資料庫。 將資料庫附加至伺服器時 sp_attach_single_file_db ,它會建置新的記錄檔。 如果資料庫是只讀的,記錄檔會建置在先前的位置。

注意

資料庫快照集無法中斷連結或附加。

請勿在復寫的資料庫上使用這個程式。

權限

如需附加資料庫時許可權處理方式的相關信息,請參閱 CREATE DATABASE

範例

下列範例會 AdventureWorks2022 中斷連結,然後將一個檔案附加 AdventureWorks2022 至目前的伺服器。

USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2022';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2022',
    @physname =
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_Data.mdf';