Previous topicNext topic
Help > SQL Server > Database >
恢复数据库
备份数据库

1. 相应的存储过程

  1. -- =============================================  
  2. -- Author:      <Hank>   
  3. -- Create date: <2016-12-04>   
  4. -- Description: <backup database>  
  5. -- =============================================  
  6. CREATE PROCEDURE [dbo].[Proc_backupDB]  
  7.     @dbname NVARCHAR(30), @path NVARCHAR(100), @isCompact BIT -- 1 为压缩模式,0 正常备份  
  8. AS BEGIN  
  9.     SET NOCOUNT ON;  
  10.   
  11.     --DECLARE @dbname NVARCHAR(30)  
  12.     --DECLARE @path NVARCHAR(100)  
  13.     --SELECT @dbname='barcode', @path='E:\database backup'  
  14.   
  15.     EXEC dbo.Proc_cleanLog @dbname=@dbname; -- nvarchar(100)  
  16.     DECLARE @sql NVARCHAR(800);  
  17.     IF @isCompact=1  
  18.         SET @sql=N'BACKUP DATABASE '+@dbname+N' TO disk = '''+@path+N'\'+@dbname+CONVERT(VARCHAR(10), GETDATE(), 121)  
  19.                  +N'.bak'''+N' with STATS = 1,compression';  
  20.     ELSE  
  21.         SET @sql=N'BACKUP DATABASE '+@dbname+N' TO disk = '''+@path+N'\'+@dbname+CONVERT(VARCHAR(10), GETDATE(), 121)  
  22.                  +N'.bak'''+N' WITH FORMAT, NAME = ''Full Backup of '+@dbname+N'''';  
  23.     EXEC(@sql);  
  24. END;  
  25. GO 

2. 在一个Sql Server中,只要有一个数据库有这个存储过程,即可备份任意数据库。运行时存储过程只要带着该数据库的库名。示例如下:

  1. EXEC standard..Proc_backupDB @dbname=N'BestAMD' -- 数据库standard中有存储过程 Proc_backupDB   
  2.   , @path=N'D:\40_dbBackup' -- nvarchar(100)  
  3.   , @isCompact= 0 -- bit 

生成的数据库备份文件如下:

3. Versions:

2022-12-06


  URL:restoreDB.htm