sqlserver批量恢复

1.需要修改备份文件目录

2.备份文件需bak结尾

3.备份文件名需默认的那种格式  dbname_backup_日期

declare
@backpath varchar(2000),
@execsql varchar(2000),
@datapath varchar(2000);
begin
set @backpath='C:\backup\';
set @execsql='dir /w '+ @backpath +'\*.BAK';
set @datapath='c:\Data';
begin
if not exists (select * from sysobjects where name='backfiles')
create table backfiles(name varchar(2000));
end
truncate table backfiles
insert into backfiles exec xp_cmdshell @execsql

DELETE backfiles WHERE upper(right(name,3))<>'BAK' OR NAME IS NULL

declare @fileName varchar(100),
@dbName varchar(100)

declare file_cur cursor for select name from backfiles;

open file_cur

fetch next from file_cur
into @fileName

while @@fetch_status=0
begin

select @dbName=substring(@fileName,1,charindex('_backup_',@filename)-1)

set @execsql ='restore database '+'"'+@dbName+'"'+
' from disk='+CHAR(39)+@backpath+@fileName+CHAR(39)+
' with move '+CHAR(39)+@dbname+CHAR(39)+' to '+CHAR(39)+@datapath+'\'+@dbn
批量恢复多个BAK文件,可以使用SQL Server Management Studio(SSMS)或Transact-SQL(T-SQL)命令来完成。 1. 使用SSMS批量恢复BAK文件: - 打开SSMS并连接到SQL Server实例。 - 在对象资源管理器中,右键单击“数据库”文件夹,选择“还原数据库”选项。 - 在“还原数据库”对话框中,选择“设备”选项卡。 - 点击“添加”按钮并浏览到包含BAK文件的文件夹。 - 选中所有需要恢复的BAK文件,点击“确定”按钮。 - 在“还原数据库”对话框中,选择需要还原的数据库和恢复选项。可以使用默认选项或根据需要进行自定义设置。 - 点击“确定”按钮开始恢复过程。 2. 使用T-SQL命令批量恢复BAK文件: - 打开SQL Server Management Studio并连接到SQL Server实例。 - 打开新的查询窗口并输入以下命令: ``` RESTORE DATABASE [DatabaseName] FROM DISK = 'FilePath1' WITH REPLACE, RECOVERY; RESTORE DATABASE [DatabaseName] FROM DISK = 'FilePath2' WITH REPLACE, RECOVERY; RESTORE DATABASE [DatabaseName] FROM DISK = 'FilePath3' WITH REPLACE, RECOVERY; ``` 其中,[DatabaseName]是需要还原的数据库名称,FilePath1、FilePath2、FilePath3是需要恢复的BAK文件路径。 - 执行命令以开始恢复过程。 注意事项: - 在恢复数据库之前,请确保已经备份了目标数据库并且目标数据库不存在。 - 如果需要恢复到不同的数据库名称,请在命令或对话框中指定新的数据库名称。 - 恢复过程可能需要一些时间,具体时间取决于BAK文件的大小和恢复选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值