附加資料庫sp_attach_db
將資料庫附加到伺服器。
文法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]
參數
[@dbname =] 'dbname'
要附加到伺服器的資料庫的名稱。該名稱必須是唯一的。dbname 的資料類型為 sysname,預設值為 NULL。
[@filename1 =] 'filename_n'
資料庫檔案的實體名稱,包括路徑。filename_n 的資料類型為 nvarchar(260),預設值為 NULL。最多可以指定 16 個檔案名稱。參數名稱以 @filename1 開始,遞增到 @filename16。檔案名稱列表至少必須包括主檔案,主檔案包含指向資料庫中其它檔案的系統資料表。該列表還必須包括資料庫分離後所有被移動的檔案。
只應對以前使用顯式 sp_detach_db 操作從資料庫伺服器分離的資料庫執行 sp_attach_db。如果必須指定多於 16 個檔案,請使用帶有 FOR ATTACH 子句的 CREATE DATABASE。
如果將資料庫附加到的伺服器不是該資料庫從中分離的伺服器,並且啟用了分離的資料庫以進行複製,則應該運行 sp_removedbreplication 從資料庫刪除複製。
許可權
只有 sysadmin 和 dbcreator 固定伺服器角色的成員才能執行本過程。
樣本
下面的樣本將 pubs 中的兩個檔案附加到當前伺服器。
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:"Program Files"Microsoft SQL Server"MSSQL"Data"pubs.mdf',
@filename2 = N'c:"Program Files"Microsoft SQL Server"MSSQL"Data"pubs_log.ldf'
分離資料庫sp_detach_db從伺服器分離資料庫,並可以選擇在分離前在所有的表上運行 UPDATE STATISTICS。
文法sp_detach_db [ @dbname = ] 'dbname'
[ , [ @skipchecks = ] 'skipchecks' ]
參數[@dbname =] 'dbname'
要分離的資料庫名稱。dbname 的資料類型為 sysname,預設值為 NULL。
[@skipchecks =] 'skipchecks'
skipchecks 的資料類型為 nvarchar(10),預設值為 NULL。如果為 true,則跳過 UPDATE STATISTICS。如果為 false,則運行 UPDATE STATISTICS。對於要移動到唯讀媒體上的資料庫,此選項很有用。
注釋使用 sp_attach_db 或 sp_attach_single_file_db 保留並重新附加分離檔案。檔案也可以移動並附加到其它伺服器上。
許可權只有 sysadmin 固定伺服器角色的成員才能執行 sp_detach_db。
樣本下面的樣本分離 pubs 資料庫,並將 skipchecks 設為 true。
EXEC sp_detach_db 'pubs', 'true'