/*******************************************
* 还原数据库
*******************************************/
ALTER PROC sp_ReCreateDataBase
@TargetDataBase NVARCHAR(500), --目标数据库
@BakDBPath NVARCHAR(500), --源数据库备份文件硬盘地址
@SavePath NVARCHAR(500) --数据库文件存储目录
AS
DECLARE @Sql NVARCHAR(MAX)
SET @TargetDataBase = 'p20-ls-3787' ---目标数据库
SET @BakDBPath = 'c:\p20-ls-3787.bak' --源数据库备份文件硬盘地址
--------------------------------分割线------------------------------------
SET @Sql = '
declare @dumpfile varchar(50)
declare @msg varchar(70)
select @dumpfile = ''' + @BakDBPath + ''' --TODO: ①源数据库备份文件
select @msg=convert(char(26),getdate(),9)
print @msg
RESTORE DATABASE [' + @TargetDataBase + '] --TODO: ②目标数据库名称
FROM disk=@dumpfile
WITH RECOVERY,
MOVE ''YiDianTongV2'' TO ''' + @SavePath + @TargetDataBase + '.mdf'', --TODO: ③目标数据库名称
MOVE ''YiDianTongV2_Log'' TO ''' + @SavePath + @TargetDataBase + '_Log.ldf'' --TODO: ④目标数据库名称
if (@@ERROR <> 0 )
begin
select @msg=convert(char(26),getdate(),9)+''-----error''
print @msg
end
else
begin
select @msg=convert(char(26),getdate(),9)+''-----ok''
print @msg
end
'
--PRINT @Sql
EXEC(@Sql)
/*******************************************
* 测试
*
* EXEC sp_ReCreateDataBase 'p20-ls-3787', 'c:\p20-ls-3787.bak','D:\MyData\'
*******************************************/
SqlServer还原数据库的存储过程
本文转载:CSDN博客