/*數據庫備份存儲過程*/
/**//*支持從服務器備份數據至本地機器上*/
-- 
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下測試通過
| 
 
 | 
新聞熱點
疑難解答