尝试用语句备份sql数据库

简单备份:

--备份  
  backup   database   sys   to   disk='c:/目录/a.bak'   with   init  
   
   
  --还原    
  use   master  
  RESTORE   DATABASE   TestDB   FROM   DISK   =   'c:/2002.dat'

编写存储过程:

create       PROCEDURE     GY_DBBak      
                      @bakequip         int,                   --     备份设备:磁盘&磁带      
                      @bakpath           varchar(50),   --     带全路径的备份文件名      
                      @baktype           int,                   --     完全备份&增量备份      
                      @baklog             int,                   --     ‘0’备份日志    
                      @bakdb               int,                   --     ‘0’备份数据库      
                      @kind     varchar(7),                 --备份还是恢复      
                       
      @retmsg     varchar(20)     output           --返回信息      
  AS      
        DECLARE     @DevName_data         varchar(50)      
        DECLARE     @DevName_log       varchar(50)  
        declare   @db_path   varchar(100)  
        declare   @log_path   varchar(100)  
                 
        DECLARE     @RC INT        
   
  SELECT         @db_path         =     @bakpath         +     '.dat'      
  SELECT         @log_path       =     @bakpath         +     'log.dat'      
                  SELECT         @RC=0  
                  select     @DevName_data='dali',@DevName_log='dalilog'  
   
        DBCC     CHECKDB(数据库名)      
  /***********************************************************  
  **   CREATE   BACKUP   AND   RESTORE   DEVICES  
  ************************************************************/  
  IF   @RC=0  
        BEGIN  
   
        EXEC   sp_addumpdevice   'disk',   @DevName_data,@db_path  
   
  exec   sp_addumpdevice   'disk',   @DevName_log,@log_path  
        select   @rc=@@error  
  IF   @RC<>0  
  begin  
  EXEC   SP_DropDevice   @Devname_data  
  exec   sp_dropdevice   @devname_log  
  SELECT   @RC=-1000  
  return   @rc  
  end  
      END  
   
        IF     @kind='backup'      
        BEGIN      
                IF     @bakequip=0      
                BEGIN      
                        IF     @baktype=0      
                        BEGIN      
                                IF     @bakdb=0      
                                BEGIN          
                                        BACKUP     DATABASE     数据库名     TO     DISK=@Devname_data      
                                        WITH     INIT      
                                END      
                                IF     @baklog=0      
                                BEGIN                              
                                        BACKUP     LOG     数据库名     WITH     NO_LOG                              
                                        BACKUP     LOG     数据库名     TO     DISK=@DevName_log    
                                        WITH     INIT,NO_TRUNCATE      
                                END      
                        END      
                        ELSE     BEGIN      
                                IF     @bakdb=0      
                                BEGIN      
                                        BACKUP     DATABASE     数据库名     TO     DISK=@DevName_data  
                                        WITH     NOINIT      
                                END      
                                IF     @baklog=0      
                                BEGIN      
                                        BACKUP     LOG     数据库名     WITH     NO_LOG                              
                                        BACKUP     LOG     数据库名     TO     DISK=@DevName_log    
                                        WITH     NOINIT,NO_TRUNCATE      
                                END      
                        END                      
                END      
                SELECT     @retmsg='数据库备份成功!'      
        END      
     
        IF     @kind='restore'              
        BEGIN      
                RESTORE     DATABASE     数据库名     FROM     DISK=     @DevName_data   WITH     REPLACE      
                SELECT     @retmsg='恢复数据库成功!'      
        END      
   
  EXEC   SP_DropDevice   @Devname_data  
  exec   sp_dropdevice   @devname_log  
     
        RETURN     0  
   
  ---测试:  
  declare   @   varchar(100)  
  exec   gy_dbbak   0,'aa',0,0,0,'backup',@   output  
  select   @

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值