1.bat文件:
sqlcmd -S 127.0.0.1 -i f:\backup\backup.sql
2.backup.sql內容:
--其中sp_BackupDatabase為存儲過程的名稱,addy為要備份的數據庫,F為要備份的類型
exec [sp_BackupDatabase] 'addy','F'
go
3.sp_BackupDatabase存儲過程:
-- Author: Addy.Zhao
-- Create date: 2012-11-10
-- Description: 備份數據庫
-- Parameter1: 數據庫名
-- Parameter2: 備份類型 F=全部, D=差異, L=日志
--把這個存儲過程在master數據庫下執行
ALTER PROCEDURE [dbo].[sp_BackupDatabase]
@databaseName sysname, @backupType CHAR(1)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @dateTime NVARCHAR(20)
SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
IF @backupType = 'F'
SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
' TO DISK = ''C:\Backup\' + @databaseName + '_Full_' + @dateTime + '.BAK'''
IF @backupType = 'D'
SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
' TO DISK = ''C:\Backup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
IF @backupType = 'L'
SET @sqlCommand = 'BACKUP LOG ' + @databaseName +
' TO DISK = ''C:\Backup\' + @databaseName + '_Log_' + @dateTime + '.TRN'''
EXECUTE sp_executesql @sqlCommand
END
4.寫完上面3個文件,在window計划任務下添加任務即可。