SQL 2005 Backup All Database

這是適用於SQL Server 2005,對所有資料庫進行檔案壓縮與備份的預存程序範例。
當架設好SQL Server後可以先按本文建立預存程序,並將該預存程序在 SQL Server 設定排程,日後新增任一資料庫就可以持續自動備份。

單一資料庫壓縮檔案

/*---------------------------------------------------- 
description: 壓縮SQL Server 的資料庫 Log 檔案
author: Robin
date: 2012/04/02
testing code: 
-----------------------------------------------------
EXEC proc_Shrink_DataBase_File 'GoodwaySCM'
-----------------------------------------------------*/
CREATE procedure [dbo].[proc_Shrink_DataBase_File] 
@dbname nvarchar(256)
AS

DECLARE @SQLString nvarchar(3000);

SET @SQLString='
use master ;

--備份目前的 log 
backup log ['+@dbname +'] to disk=''E:\SQL_BACKUP\db.log'' WITH NOFORMAT ;

--將資料庫復原模式切換到簡單模式
ALTER DATABASE ['+@dbname +'] SET RECOVERY SIMPLE WITH NO_WAIT ;

--找到 DatabaseNameLog 的值
use ['+@dbname +'];

declare @name varchar(50)
select @name=name from sys.database_files
where type_desc = ''log'' ;


--縮減 log file 到 1MB
DBCC SHRINKFILE(@name, 1) ;

--將資料庫復原模式切換到完整模式
USE [master] ;

ALTER DATABASE ['+@dbname +'] SET RECOVERY FULL WITH NO_WAIT ;' ;

EXEC sp_executesql @SQLString