惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
月光博客
月光博客
IT之家
IT之家
B
Blog RSS Feed
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
博客园_首页
B
Blog
V
V2EX
腾讯CDC
Vercel News
Vercel News
量子位
Microsoft Security Blog
Microsoft Security Blog

博客园 - ant-boss

pl/sql转义字符的问题 EXP/IMP 命令参数 Programming with the Microsoft Office Visio 2003 ActiveX Control 使用Visio 2003 Drawing Control开发应用(5) 使用Visio 2003 Drawing Control开发应用(4) 使用Visio 2003 Drawing Control开发应用(3) 使用Visio 2003 Drawing Control开发应用(1) 使用Visio 2003 Drawing Control开发应用(2) Visio 2003 开发入门 软件数字签名 在ASP.NET下用Microsoft Excel进行数据分析与报表 水晶报表常见问题(转载) Access 类型转换函数 My97日期控件 My97 DatePicker Ver 3.0.1 showModalDialog 使用TransactionScope 实现事务管理 datagrid数据导出到excel文件给客户端下载的几种方法 VSS(Visual SourceSafe)使用入门 [转] 使用asp.net 2.0和SQL SERVER 2005构建多层应用
备份/恢复SQL Server
ant-boss · 2007-12-19 · via 博客园 - ant-boss

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   @

备份:  
  use   master  
  backup   database   yourdatabase   to   disk='d:\...\***.bak'  
  还原:  
  use   master  
  restore   database   yourdatabase   from   disk='d:\...\***.bak'