27,579
社区成员
发帖
与我相关
我的任务
分享
declare @ID int; --定义变量来保存ID号
declare @log_name varchar(200);
DECLARE @query NVARCHAR(500); --定义变量来保存值
declare @max_id int
select @max_id = max(id) from [my_console_db].[dbo].[log_trace_tb] with (nolock)
SET @query='';
declare mycursor cursor for
select ID,log_name from [my_console_db].[dbo].[log_trace_tb] with (nolock) where restore_status=0 and log_name>'DaiGou.Com_backup_2016_06_28_173501_3284590.trn' and id>12358
order by log_name
--and id=@max_id --为所获得的数据集指定游标
open mycursor --打开游标
fetch next from mycursor into @ID,@log_name --开始抓第一条数据
while(@@fetch_status=0) --如果数据集里一直有数据
begin
set @query = 'alter database [DaiGou.Com] set offline with rollback immediate;
alter database [DaiGou.Com] set online;
restore database [DaiGou.Com] from disk = ''E:\sqlserver\log'+'\'+@log_name+''''+
' with standby = ''E:\sqlserver\backup\DaiGou.Com_D_20160626.bak'''
--print @query
exec(@query)
update [my_console_db].[dbo].[log_trace_tb] set restore_status = 1 where id = @ID
fetch next from mycursor into @ID,@log_name --跳到下一条数据
end
close mycursor --关闭游标
deallocate mycursor --删除游标
restore database [DaiGou.Com] from disk='完整备份文件' with norecovery