在你Master数据库内执行该段存储过程,该存储过程被Windows计划调用
-- ============================================= -- Description: 备份数据库 -- Parameter1: 数据库名 -- Parameter2: 备份类型 F=全部, D=差异, L=日志 -- ============================================= CREATE 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 go
建立一个windows任务计划,打开任务计划向导,选择指定的的exe文件,该文件名为SQLCMD.EXE,位于ToolsBinn 目录下。
修改运行命令参数为:sqlcmd -S .SQLEXPRESS -E -i c:Backup.sql
注:.SQLEXPRESS 是你的数据库实例, c:Backup.sql 磁盘位置可任意更改。Backup.sql 文件内容为:
exec [sp_BackupDatabase] '需要备份的数据库名','F'; go