SqlServer 远程自动备份,备份到网络路径(日常记录)

/*
备份数据库存储过程
*/
ALTER proc [dbo].[BackUpDBForLloyd]
as 
BEGIN
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;

EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

 

declare @machine nvarchar(50) ='192.168.1.1' -- '192.168.254.32'       --服务器IP

declare @path nvarchar(50) = 'System'               --服务器共享目录名称  LAN DISK Log

declare @user nvarchar(50) = 'admin'--'administrator'               --服务器的用户名

declare @pwd nvarchar(50) = '123123'--'123456'                    --服务器的密码

declare @database nvarchar(50)  ='DBName'-- 'sx_print'            --本地要备份的数据库名称

 

if left(@path,1) != '\' set @path = '\'+@path

declare @sql nvarchar(800) = 'net use \\'+@machine+@path+' "'+@pwd+'" /user:'+@machine+'\'+@user

--建立连接类似:'net use \\192.168.200.175\208bf " " /user:192.168.200.175\happy'

Exec xp_cmdshell @sql

 

declare @date datetime = getdate();

Declare @fileName nvarchar(200) = '\\'+@machine+@path+'\'+@database + replace(Convert(nvarchar,@date,120 ) ,':','_') + '.bak'

--备份数据库

Backup Database Lloyd To disk = @fileName With Format

 

set @sql = 'net use \\'+@machine+@path+' /delete'

--断开连接类似:'net use \\192.168.200.175\208bf /delete'

Exec xp_cmdshell @sql
 

 END

  

转载于:https://www.cnblogs.com/duangduang/p/11187719.html

你可能感兴趣的:(数据库)