2013-08-19 67 views
1

計算機已經死機,但我能夠從硬盤中複製出所有.MDF.LDF文件。多個sp_attach_db在一個查詢中

我想使用sp_attach_db將數據庫附加到新的服務器,使用「查詢工具」到SQL Server 2012數據庫。

這工作如果我去做了一個接一個:

sp_attach_db 'uni_11_2010','c:\Program Files\Microsoft SQL Server\MSSQL11.UNI\MSSQL\DATA\uni_11_2010.mdf', 'c:\Program Files\Microsoft SQL Server\MSSQL11.UNI\MSSQL\DATA\uni_11_2010_log.LDF'; 

但問題是,我有500個不同的數據庫附加。我創建了一個包含全部500個sp_attach_db命令的文本文件,每行一個 - 用;

分隔,但它似乎只在我當時輸入一個命令時才起作用。

這將是巨大的,如果我能做到的所有500一次.....

非常感謝所有幫助。

+0

你是如何執行這個文本文件的? – RBarryYoung

回答

2

如果您的「查詢工具」在後臺使用SQLCMD,則可能需要在每個語句之間或末尾放置一個批終止符(讀取GO)。

sp_attach_db 'dater', 'c:\data\dater.mdf', 'c:\data\dater.ldf'; 
GO 
+0

感謝提示布賴恩。似乎沒有工作,雖然:'GO'附近的語法不正確。或許還有另一種方法,而不是使用專有查詢工具? (對不起,我不熟悉MS SQL ...) – user2298034

0

我管理一個BAT文件,並OSQL做到這一點:

osql -S .\sql2012 -E -o dumpfile_dbattach.txt -Q "sp_attach_db @dbname = 'uni_1', @filename1='C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\uni_1.mdf',@filename2='C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\uni_1_log.ldf'" 

主題現在可以關閉。

+0

要「關閉」它,只需接受你自己的答案。 –