一个查询中有多个sp_attach_db

时间:2013-08-19 19:40:02

标签: sql-server

计算机已经死了,但我能够从硬盘驱动器中复制出所有.MDF.LDF个文件。

我正在尝试使用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个就好了.......

非常感谢所有人的帮助。

2 个答案:

答案 0 :(得分:2)

如果您的“查询工具”在幕后使用SQLCMD,您可能需要在每个语句之间或最后添加批处理终止符(读取GO)。

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

答案 1 :(得分: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'"

主题现在可以关闭。