国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SqlServer批量備份多個數據庫且刪除3天前的備份

2024-08-31 01:05:06
字體:
來源:轉載
供稿:網友

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

/*******************************************  * 批量備份數據庫且刪除3天前的備份  *******************************************/ DECLARE @backupfile VARCHAR(1024)  DECLARE @backdesc VARCHAR(1024)  DECLARE @filename VARCHAR(1024)  DECLARE @path VARCHAR(1024)  DECLARE @dbname VARCHAR(1024)  DECLARE @extension_name VARCHAR(16)  --備份參數  DECLARE tmp_Cur CURSOR  FOR    SELECT NAME    FROM  [sys].[databases]    WHERE  NAME NOT IN ( 'master', 'model','msdb','tempdb' )  SET @path = N'D:/Backup/Autoback/';  SET @extension_name = N'bak';  --生成文件名  SET @filename = CONVERT(VARCHAR(1024), GETDATE(), 120)  SET @filename = REPLACE(@filename, ':', '')  SET @filename = REPLACE(@filename, '-', '')  SET @filename = REPLACE(@filename, ' ', '')  SET @filename = @filename + '_' + CONVERT (VARCHAR(3), DATEPART(ms, GETDATE()))    + N'.' + @extension_name  OPEN tmp_Cur;  FETCH NEXT FROM tmp_Cur INTO @dbname;  WHILE @@FETCH_STATUS = 0     BEGIN      -- 得到完整目標文件,數據庫將備份到這個文件中      SET @backupfile = @path + @dbname + @filename      --SELECT @backupfile      SET @backdesc =@dbname + N'-完整 數據庫 備份'      -- 開始備份, COMPRESSION 參數表示壓縮,可節省磁盤空間      BACKUP DATABASE @dbname TO DISK = @backupfile WITH NOFORMAT, NOINIT, NAME = @backdesc, SKIP, NOREWIND, NOUNLOAD, STATS = 10, COMPRESSION      FETCH NEXT FROM tmp_Cur INTO @dbname    END  CLOSE tmp_Cur;  DEALLOCATE tmp_Cur;  -- 刪除3天前的備份文件  DECLARE @olddate DATETIME  SELECT @olddate = DATEADD(d, -3, GETDATE())  -- 執行刪除 (SQL 2008 具備)  EXECUTE master.dbo.xp_delete_file 0, @path, @extension_name, @olddate, 1 [sql] view plain copy print?--作業定時壓縮腳本支持多庫 DECLARE @DatabaseName NVARCHAR(50) DECLARE @ExecuteSql NVARCHAR(MAX) SET @ExecuteSql='' DECLARE name_cursor CURSOR FOR   SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb',    'northwind','pubs','AgentSys','ydttimedtask','YiDianTongV2' )  OPEN name_cursor;  FETCH NEXT FROM name_cursor INTO @DatabaseName;  WHILE @@FETCH_STATUS = 0   BEGIN       SET @ExecuteSql =''     SET @ExecuteSql +='       USE ['+@DatabaseName+'];       DECLARE @Error INT       SET @Error=(SELECT TOP 1 size/128.0 - CAST(FILEPROPERTY([NAME], ''SpaceUsed'') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files ORDER BY [NAME] DESC)       --PRINT @Error       IF(@Error>1)         BEGIN           ALTER DATABASE ['+@DatabaseName+']  --數據庫名字           SET RECOVERY SIMPLE;  --設置簡單恢復模式           DBCC SHRINKFILE ([YiDianTongV2], 1);  --(M)不能小于1M,           DBCC SHRINKFILE ([YiDianTongV2_log], 1);  --(M)不能小于1M           ALTER DATABASE ['+@DatabaseName+']           SET RECOVERY FULL;  --恢復為原來完整模式         END     '     PRINT @ExecuteSql; --打印     EXEC(@ExecuteSql) --執行     FETCH NEXT FROM name_cursor INTO @DatabaseName;    END;  CLOSE name_cursor;  DEALLOCATE name_cursor; 

總結

以上所述是小編給大家介紹的SqlServer批量備份多個數據庫且刪除3天前的備份,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芮城县| 根河市| 宾阳县| 施秉县| 孝义市| 黎川县| 甘洛县| 常宁市| 青龙| 永昌县| 桂阳县| 浦北县| 定日县| 黄平县| 新昌县| 明水县| 平顺县| 白沙| 阳江市| 石景山区| 米林县| 通山县| 嵊泗县| 渝北区| 长泰县| 定边县| 长春市| 隆安县| 永城市| 喀什市| SHOW| 吴堡县| 寻乌县| 宣化县| 灵武市| 闽侯县| 三亚市| 鲁山县| 宁阳县| 三台县| 昌黎县|