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