当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 备份服务器端SQL SERVER数据库至本地目录

MSSQL
MS-sql 2005拒绝了对对象 ''xxx'' (数据库 ''xxx'',架构 ''dbo'')的 SELECT 权限的解决方法
MSSQL 2005 LOG备份webshell的方法
快速将珊瑚虫IP数据库转MS SQL2005的图文教程
sql2005 远程连接问题解决方法
SQLServer 2005 列所有存储过程的语句
SQL Server 2005 模板参数使用说明
Sql Server 2005 默认端口修改方法
SQL Sever 2005 Express 安装失败解决办法
sql2005 根据指定字段排序编号
监视SQLServer数据库镜像[图文]
sqlserver2008 拆分字符串
字符串聚合函数(去除重复值)
SQL Server 2005 同步复制技术
SqlServer2005 链接服务器用法
SQL2008中 阻止保存要求重新创建表的更改 的解决方法
sql rollup用法 小计汇总
SQLServer 2008 Merge语句的OUTPUT功能
SQLServer 2008 新增T-SQL 简写语法
SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法
SQL2005 学习笔记 公用表表达式(CTE)

MSSQL 中的 备份服务器端SQL SERVER数据库至本地目录


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 109 ::
收藏到网摘: n/a

/*數據庫備份存儲過程*/
/*支持從服務器備份數據至本地機器上*/
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 name=@backup_db_name
    )
BEGIN
  SELECT @flag=’數據庫’+@backup_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 ’+@backup_db_name+’ TO DISK=@filename WITH INIT’
  EXECUTE sp_executesql @sql,@par,@filename
  EXECUTE master..xp_cmdshell ’NET USE Z: /DELETE’
  SELECT @flag=’數據庫’+@backup_db_name+’備份成功!’
  RETURN
END
ELSE
BEGIN
    SELECT @flag=’數據庫備份路徑錯誤!’
    RETURN
END
END

**以上過程在SQL SERVER下測試通過