/*數據庫備份存儲過程*/
/**//*支持從服務器備份數據至本地機器上*/
--
create procedure up_dbbackup
(
@backup_db_name varchar(128),
@filename varchar(128), /**//*備份路徑+文件名*/
@flag varchar(60) output
)
as
set nocount on
declare @sql nvarchar(4000),@par nvarchar(1000)
if not exists(
select * from master..sysdatabases
where [email protected]_db_name
)
begin
select @flag='數據庫'[email protected]_db_name+'不存在!'
return
end
else
begin
if right(@filename,1)<>'/' and charindex('/',@filename)<>0
begin
/**//*定義標誌*/
declare @lflag int
execute @lflag=master..xp_cmdshell 'dir z:'
if @lflag<>0
begin
/**//* 在客戶機192.168.2.45上建立一個完全共享目錄db,指定一個用戶名和密碼.win98用戶不需要用戶名和密碼*/
execute @lflag=master..xp_cmdshell 'net use z: //192.168.2.45/db$ test /user:ca.atc/test'
if @lflag<>0
begin
select @flag='服務器創建目錄失敗!'
return
end
end
select @par='@filename varchar(1000)'
select @sql='backup database '[email protected]_db_name+' to [email protected] with init'
execute sp_executesql @sql,@par,@filename
execute master..xp_cmdshell 'net use z: /delete'
select @flag='數據庫'[email protected]_db_name+'備份成功!'
return
end
else
begin
select @flag='數據庫備份路徑錯誤!'
return
end
end
**以上過程在sql server下測試通過
新闻热点
疑难解答