EXEC sp_attach_db
@dbname = N'testdb',
@filename1 = N'D:\database\TestDB_Pri1.mdf',
@filename2 = N'D:\database\TestDB_Pri2.ndf',
@filename7 = N'D:\DBLog\Log1.ldf',
當你的資料庫有多個資料檔(.ndf)時,必須把所有檔案一起列出來,否則可能會無法完整附加資料庫,或附加失敗。
-- 建議用法,適用於 SQL Server 2005 以後
CREATE DATABASE testdb
ON
(FILENAME = 'D:\database\TestDB_Pri1.mdf'),
(FILENAME = 'D:\database\TestDB_Pri2.ndf'),
(FILENAME = 'D:\DBLog\Log1.ldf'),
FOR ATTACH;
就會變成 重新建立一個全新的空資料庫
雖然你指定了檔案路徑,但會出錯或覆蓋原檔(視 SQL Server 設定與檔案是否存在)
-- 建立新資料庫(自己會建立新的 .mdf / .ldf)
CREATE DATABASE dbname
ON (...)
LOG ON (...)
-- 附加已存在的資料庫檔案
CREATE DATABASE dbname
ON (FILENAME = 'xxx.mdf'), ...
FOR ATTACH