sql server 2000备份还原数据库

时间:2023-01-12 00:29:23

转载请注明出处:http://blog.csdn.net/neochan1108/article/details/79248017

备份:

 

[cpp]  view plain  copy
 
  1. -- Create the backup device for the full MyNwind backup.  
  2.   
  3. EXEC sp_addumpdevice 'disk', 'MyNwind_2',  
  4.    'f:\neochan\MyNwind_2.dat'  
  5.   
  6. --Create the log backup device.  
  7.   
  8. EXEC sp_addumpdevice 'disk', 'MyNwindLog1',  
  9.    'f:\neochan\MyNwindLog1.dat'  
  10.   
  11. -- Back up the full MyNwind database.  
  12. BACKUP DATABASE testDB TO MyNwind_2  
  13.   
  14. -- Update activity has occurred since the full database backup.  
  15.   
  16. -- Back up the log of the MyNwind database.  
  17. BACKUP LOG testDB TO MyNwindLog1  
  18.   
  19. -- 清除设备  
  20. exec sp_dropdevice 'MyNwind_2'  
  21. exec sp_dropdevice 'MyNwindLog1'  


还原:

 

[html]  view plain  copy
 
  1. -- 分离数据库  
  2. use master  
  3. exec killspid 'testDB'  
  4. EXEC sp_detach_db 'testDB', 'true'  
  5.   
  6.   
  7. -- 还原数据库  
  8. EXEC sp_addumpdevice 'disk', 'MyNwind_2',  
  9.    'f:\neochan\MyNwind_2.dat'  
  10.   
  11. RESTORE DATABASE testDB FROM MyNwind_2 WITH REPLACE,NORECOVERY  
  12.   
  13. EXEC sp_addumpdevice 'disk', 'MyNwindLog1',  
  14.    'f:\neochan\MyNwindLog1.dat'  
  15. RESTORE LOG testDB FROM MyNwindLog1 WITH REPLACE  
  16.   
  17. exec sp_dropdevice 'MyNwind_2'  
  18. exec sp_dropdevice 'MyNwindLog1'  

 

[html]  view plain  copy
 
  1. killspid的存储过程为(在master上):  
[html]  view plain  copy
 
    1. SET QUOTED_IDENTIFIER ON   
    2. GO  
    3. SET ANSI_NULLS OFF   
    4. GO  
    5.   
    6.   
    7.   
    8. ALTER    PROCEDURE killspid (@dbname     varchar(20))  AS  
    9.        
    10.   begin         
    11.   declare     @sql     nvarchar(500),@temp   varchar(1000)     
    12.   declare     @spid     int         
    13.   set     @sql='declare     getspid     cursor     for             
    14.   select     spid     from     sysprocesses     where     dbid=db_id('''+@dbname+''')'         
    15.   exec     (@sql)         
    16.   open     getspid         
    17.   fetch     next     from     getspid     into     @spid         
    18.   while     @@fetch_status<>-1         
    19.   begin         
    20.       set   @temp='kill     '+rtrim(@spid)     
    21.       exec(@temp)     
    22.   fetch     next     from     getspid     into     @spid         
    23.   end         
    24.   close     getspid         
    25.   deallocate     getspid         
    26.   end  
    27. GO  
    28. SET QUOTED_IDENTIFIER OFF   
    29. GO  
    30. SET ANSI_NULLS ON   
    31. GO