我装的是sql2005 express 版本的没有sql代理也没有维护计划功能,我按网上找的方法创建了windows计划任务,操作步骤如下:
1. 首先建立一个windows任务计划,打开任务计划向导,选择指定的的exe文件,该文件名为backup.cmd(此文件内容:sqlcmd -S .\SQLEXPRESS -E -i F:\Backup\Backup.sql)。Backup.sql 文件内容为:
exec [sp_BackupDatabase] 'urtracker','F'go注:.\SQLEXPRESS 是你的数据库实例, F:\Backup\Backup.sql 磁盘位置可任意更改。urtracker 是我要备份的bug跟踪系统的数据库。2. 然后选择执行周期,假设选择每天上午9点,接着输入Windows用户名和密码。3.在任务计划向导完成前勾选 “在单击完成时,打开此任务的高级属性”这个CheckBox。4.在Master数据库内执行查询后会添加一个存储过程,该存储过程被Windows计划调用。
查询语句为:USE [master]  
GO  
/****** Object:  StoredProcedure [dbo].[sp_BackupDatabase]    Script Date: 14/07/2011 14:40:47 ******/  
SET ANSI_NULLS ON  
GO  
SET QUOTED_IDENTIFIER ON  
GO  -- =============================================  
-- Author: RyanDing  
-- Create date: 2010-10-10 
-- 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 = ''F:\Backup\' + @databaseName + '_Full_' + @dateTime + '.BAK'''  
         
       IF @backupType = 'D'  
               SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +  
               ' TO DISK = ''F:\Backup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'  
         
       IF @backupType = 'L'  
               SET @sqlCommand = 'BACKUP LOG ' + @databaseName +  
               ' TO DISK = ''F:\Backup\' + @databaseName + '_Log_' + @dateTime + '.TRN'''  
         
       EXECUTE sp_executesql @sqlCommand  
END 
go5.执行计划任务,查看F:\Backup\中备份的数据库。到设置的时间或者手动执行计划任务都没有产生备份文件。请帮我看下有什么地方要改?

解决方案 »

  1.   

    C:\Documents and Settings\Administrator>sqlcmd -S .\SQLEXPRESS -E -i F:\Backup\B
    ackup.sql
    消息 102,级别 15,状态 1,服务器 TEST44\SQLEXPRESS,第 1 行
    'go' 附近有语法错误。C:\Documents and Settings\Administrator>exec [sp_BackupDatabase] 'urtracker','F'go
    这句后面的go有语法错误吗
      

  2.   

    Microsoft Windows [版本 5.2.3790]
    (C) 版权所有 1985-2003 Microsoft Corp.C:\Documents and Settings\Administrator>sqlcmd -S .\SQLEXPRESS -E -i F:\Backup\B
    ackup.sql
    消息 102,级别 15,状态 1,服务器 TEST44\SQLEXPRESS,第 1 行
    'go' 附近有语法错误。C:\Documents and Settings\Administrator>sqlcmd -S .\SQLEXPRESS -E -i F:\Backup\B
    ackup.sql
    已为数据库 'urtracker',文件 'urtracker' (位于文件 1 上)处理了 520 页。
    已为数据库 'urtracker',文件 'urtracker_log' (位于文件 1 上)处理了 8 页。
    BACKUP DATABASE 成功处理了 528 页,花费 0.560 秒(7.717 MB/秒)。C:\Documents and Settings\Administrator>
    哦呵呵呵呵,解决了我把exec [sp_BackupDatabase] 'urtracker','F'go
    语句里的go换了下行就可以了
    谢谢大家