SQL SERVER数据库备份到网络硬盘上
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
if exists (select * from sysobjects where id = OBJECT_ID('[P_DB_BK]') and xtype='P')
DROP PROC [P_DB_BK]
GO
CREATE PROC [dbo].[P_DB_BK]
@SavePath nvarchar(150), --@SavePath =>保存的网络地址目录
@IP nvarchar(20), --@IP =>IP地址
@UserName nvarchar(30), --@UserName =>访问网络地址的用户名
@Password nvarchar(20), --@Password =>访问网络地址的密码
@DBName nvarchar(50), --@DBName =>需要备份的数据库名字
@SaveFileName nvarchar(150)--@SaveFileName =>保存备份文件的名字
WITH ENCRYPTION AS
/****** 对象: StoredProcedure [dbo].[P_DB_BK]
#desc 【存储过程的说明】:执行数据库备份到网络磁盘
#author 【作者】:todd
#contact 【联系方式】:zhou860109@163.com
#version 【版本】:V1.0
#param 【参数说明】:
@SavePath =>保存的网络地址目录
@IP =>IP地址
@UserName =>访问网络地址的用户名
@Password =>访问网络地址的密码
@DBName =>需要备份的数据库名字
@SaveFileName =>保存备份文件的名字
#create date 【脚本日期】: 07/21/2011 16:21:08
Example 【调用例子】:
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[P_DB_BK]
@SavePath = N'\\192.168.1.2\db_bk\test',
@IP = N'192.168.1.2',
@UserName = N'administrator',
@Password = N'123456',
@DBName = N'test',
@SaveFileName = N'test_2011_07_21.bak'
SELECT 'Return Value' = @return_value
GO
*/
BEGIN
EXEC sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
EXEC sp_configure N'xp_cmdshell', N'1'
RECONFIGURE WITH OVERRIDE
EXEC sp_configure N'show advanced options', N'0'
RECONFIGURE WITH OVERRIDE
declare @TempInfo nvarchar(500)
select @TempInfo='net use z: '+@SavePath+' "'+@Password+'" /user:'+@IP+'\'+@UserName
exec master..xp_cmdshell @TempInfo
select @TempInfo='C:\'+@SaveFileName
backup database @DBName to disk=@TempInfo with init
select @TempInfo='copy C:\'+@SaveFileName+' z:'
exec master..xp_cmdshell @TempInfo
exec master..xp_cmdshell 'net use z: /delete'
select @TempInfo='del C:\'+@SaveFileName
exec master..xp_cmdshell @TempInfo
END