还原多个SQL Server.bak文件
我有一个包含多个sql server.bak文件的文件夹 我想将它们还原到sql server。如何执行脚本,以便可以立即恢复该文件夹中的所有备份文件还原多个SQL Server.bak文件,sql,sql-server-2008,stored-procedures,Sql,Sql Server 2008,Stored Procedures,我有一个包含多个sql server.bak文件的文件夹 我想将它们还原到sql server。如何执行脚本,以便可以立即恢复该文件夹中的所有备份文件 RESTORE DATABASE [db1] FROM DISK = N'C:\folder\db1.bak' WITH FILE = 1, MOVE N'DB_Data' TO N'C:\folder\db2.mdf', MOVE N'DB_log' TO N'C:\folder\db1.LDF', NOUNLOAD, STATS
RESTORE DATABASE [db1] FROM DISK = N'C:\folder\db1.bak' WITH FILE = 1, MOVE N'DB_Data' TO N'C:\folder\db2.mdf', MOVE N'DB_log' TO N'C:\folder\db1.LDF', NOUNLOAD, STATS = 10
GO
RESTORE DATABASE [db2] FROM DISK = N'C:\folder\db2.bak' WITH FILE = 1, MOVE N'DB_Data' TO N'C:\folder\db2.mdf', MOVE N'DB_Log' TO N'C:\folder\db2.LDF', NOUNLOAD, STATS = 10
GO
试试这样的
dir *.bak > input.txt
将GAWK程序写入program.GAWK.txt文件:
BEGIN {
printf "-- My auto-generated script \n"
}
{
printf "RESTORE DATABASE [substr($1,1,length($1)-4)] FROM DISK = N'$1 \n'"
printf "GO \n\n"
}
END {
printf "-- End of script"
}
尝试使用substr为基于BAK文件名的还原数据库生成临时名称。不确定substr表达式是否正确-请检查您自己
- $1将从input.txt更改为文件名
- substr($1,1,长度($1)-4)用于从文件名中剪切“.BAK”
gawk --file=program.gawk.txt input.txt > my_script.sql
…并对其进行审查
也许这样做是可能的。不知道
从以下位置下载GAWK:我希望从单个服务器进行多个恢复script@KishoreJangid:这是一个脚本。。。。。但是,您不能用一个
还原数据库命令还原多个*.bak
文件…
命令(如果这是您真正的意思…)执行脚本时,我不知道数据库名称。它应该从一个文件夹中获取所有数据库备份文件并还原它们