SQL 数据库远程备份 语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/admans/article/details/83617146


DECLARE @DATABakPath VARCHAR(200) = N'\\192.168.0.22\DataBak'	--远程共享目录(备份文件夹根目录)
DECLARE @UserName VARCHAR(50) = N'192.168.0.22\dbuser'	--远程目录访问用户账户
DECLARE @UserPwd VARCHAR(50) = N'123456'	--远程目录访问用户密码
DECLARE @RemoteComand VARCHAR(200)
DECLARE @exeText VARCHAR(100)
DECLARE @DATABaseName VARCHAR(200)		--要备份的数据库名称
							
DECLARE @DATAFullName VARCHAR(200)

SET @RemoteComand = 'net use ' + @DATABakPath + ' ' + @UserPwd + ' /user:' +
    @UserName + ' /persistent:yes' 
EXEC MASTER..xp_cmdshell @RemoteComand		--连接远程服务器目录


SET @DATABaseName = 'db001' 
SET @exeText = 'mkdir ' + @DATABakPath + '\' + @DATABaseName --在根目录创建数据库同名目录 
EXEC xp_cmdshell @exeText,
     no_output
SET @DATAFullName= @DATABakPath + '\' + @DATABaseName + '\' + @DATABaseName + '.bak'     
BACKUP DATABASE @DATABaseName TO DISK = @DATAFullName

--继续下一个(如果比较多可以利用循环)

SET @DATABaseName = 'db002' 
SET @exeText = 'mkdir ' + @DATABakPath + '\' + @DATABaseName --在根目录创建数据库同名目录
EXEC xp_cmdshell @exeText,
     no_output
SET @DATAFullName= @DATABakPath + '\' + @DATABaseName + '\' + @DATABaseName + '.bak'     
BACKUP DATABASE @DATABaseName TO DISK = @DATAFullName

猜你喜欢

转载自blog.csdn.net/admans/article/details/83617146