job调用下面的过程

来源:互联网 发布:近年来 网络爱国事件 编辑:程序博客网 时间:2024/05/17 02:58

2   job调用下面的过程:  
  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  
   
        DBCC     CHECKDB(Northwind)      
  /***********************************************************  
  **   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     Northwind     TO     DISK=@Devname_data      
                                        WITH     INIT      
                                END      
                                IF     @baklog=0      
                                BEGIN                              
                                        BACKUP     LOG     Northwind     WITH     NO_LOG                              
                                        BACKUP     LOG     Northwind     TO     DISK=@DevName_log    
                                        WITH     INIT,NO_TRUNCATE      
                                END      
                        END      
                        ELSE     BEGIN      
                                IF     @bakdb=0      
                                BEGIN      
                                        BACKUP     DATABASE     Northwind     TO     DISK=@DevName_data  
                                        WITH     NOINIT      
                                END      
                                IF     @baklog=0      
                                BEGIN      
                                        BACKUP     LOG     Northwind     WITH     NO_LOG                              
                                        BACKUP     LOG     Northwind     TO     DISK=@DevName_log    
                                        WITH     NOINIT,NO_TRUNCATE      
                                END      
                        END                      
                END      
                SELECT     @retmsg='数据库备份成功!'      
        END      
     
        IF     @kind='restore'              
        BEGIN      
                RESTORE     DATABASE     Northwind     FROM     DISK=     @DevName_data   WITH     REPLACE      
                SELECT     @retmsg='恢复数据库成功!'      
        END      
     
        RETURN     0  
  2   job调用下面的过程:  
  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  
   
        DBCC     CHECKDB(Northwind)      
  /***********************************************************  
  **   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     Northwind     TO     DISK=@Devname_data      
                                        WITH     INIT      
                                END      
                                IF     @baklog=0      
                                BEGIN                              
                                        BACKUP     LOG     Northwind     WITH     NO_LOG                              
                                        BACKUP     LOG     Northwind     TO     DISK=@DevName_log    
                                        WITH     INIT,NO_TRUNCATE      
                                END      
                        END      
                        ELSE     BEGIN      
                                IF     @bakdb=0      
                                BEGIN      
                                        BACKUP     DATABASE     Northwind     TO     DISK=@DevName_data  
                                        WITH     NOINIT      
                                END      
                                IF     @baklog=0      
                                BEGIN      
                                        BACKUP     LOG     Northwind     WITH     NO_LOG                              
                                        BACKUP     LOG     Northwind     TO     DISK=@DevName_log    
                                        WITH     NOINIT,NO_TRUNCATE      
                                END      
                        END                      
                END      
                SELECT     @retmsg='数据库备份成功!'      
        END      
     
        IF     @kind='restore'              
        BEGIN      
                RESTORE     DATABASE     Northwind     FROM     DISK=     @DevName_data   WITH     REPLACE      
                SELECT     @retmsg='恢复数据库成功!'      
        END      
     
        RETURN     0  
  Top

5 楼sh_zll()回复于 2005-05-15 16:51:40 得分 0

做一个job,写一个备份数据库的存储过程dbbackup。  
   
  企业管理器--选择工具--作业调度--使用作业向导--选择transact   sql命令--选择要备份的数据库==在  
  transact   sql语句一栏输入exec   dbbackup--设置调度(主要是设置备份的频率,比如每天一次,和具体执行时间)  
   
  存储过程参见楼上写的

原创粉丝点击