如何在SQL Server Express版本中创建作业

时间:2011-08-26 06:54:50

标签: sql-server sql-server-2008-express sql-job

请问任何人请解释我如何在SQL Server Express版本中创建工作?

3 个答案:

答案 0 :(得分:110)

SQL Server Express doesn't include SQL Server Agent,因此无法仅创建SQL代理作业。

你能做的是:
您可以通过创建批处理文件和SQL脚本文件并通过Windows任务计划程序运行它们来“手动”创建作业 例如,您可以使用以下两个文件备份数据库:

<强> BACKUP.BAT:

sqlcmd -i backup.sql

<强> backup.sql:

backup database TeamCity to disk = 'c:\backups\MyBackup.bak'

只需将两个文件放在同一个文件夹中,然后通过Windows任务计划程序执行批处理文件。

第一个文件只是一个Windows批处理文件,它调用sqlcmd utility并传递一个SQL脚本文件 SQL脚本文件包含T-SQL。在我的示例中,备份数据库只是一行,但您可以将任何T-SQL放入其中。例如,您可以改为执行一些UPDATE查询。


如果您要创建的作业用于备份,索引维护或完整性检查,您还可以使用Ola Hallengren的优秀Maintenance Solution

它由一堆存储过程(以及SQL Server非Express版本的SQL代理作业)组成,在FAQ中有一节介绍如何在SQL Server Express上运行作业:

  

如何开始使用SQL Server Express上的SQL Server维护解决方案?

     

SQL Server Express没有SQL Server代理。因此,必须使用cmd文件和Windows计划任务来计划存储过程的执行。请按照以下步骤操作。

     

SQL Server Express没有SQL Server代理。因此,执行   必须使用cmd文件来安排存储过程   Windows计划任务。请按照以下步骤操作。

     
      
  1. 下载MaintenanceSolution.sql。

  2.   
  3. 执行MaintenanceSolution.sql。该脚本创建了您需要的存储过程。

  4.   
  5. 创建cmd文件以执行存储过程;例如:
        sqlcmd -E -S。\ SQLEXPRESS -d master -Q“EXECUTE dbo.DatabaseBackup @Databases ='USER_DATABASES',@ Directory =   N'C:\ Backup',@ BackupType ='FULL'“ - b -o C:\ Log \ DatabaseBackup.txt

  6.   
  7. 在Windows计划任务中,创建调用cmd文件的任务。

  8.   
  9. 安排任务。

  10.   
  11. 启动任务并验证它们是否已成功完成。

  12.   

答案 1 :(得分:31)

SQL Server Express Edition中不提供创建SQL代理作业的功能。另一种方法是执行批处理文件,该文件使用Windows任务计划程序执行SQL脚本。

为了做到这一点,首先要创建一个名为 sqljob.bat 的批处理文件

sqlcmd -S servername -U username -P password -i path of sqljob.sql

用您的servernameusernamepasswordpath替换。

然后创建名为 sqljob.sql

的SQL脚本文件
USE [databasename]
--T-SQL commands go here
GO

[databasename]替换为您的数据库名称。编写SQL脚本时需要USEGO

sqlcmd是一个用于执行SQL脚本的命令行实用程序。创建此两个文件后,使用Windows任务计划程序执行批处理文件。

NB:之前已经针对此问题发布了几乎相同的答案。但我觉得它不完整,因为它没有使用sqlcmd指定登录信息。

答案 2 :(得分:15)

SQL Server Express版本在某些方面受到限制 - 一种方式是它们没有允许您安排作业的SQL代理。

有一些第三方扩展提供了这种功能 - 例如: