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

Pea*_*arl 67 sql-server sql-server-2008-express sql-job

可以请任何人解释我如何在SQL Server Express版本中创造就业机会?

Chr*_*cht 113

SQL Server Express 不包含SQL Server代理,因此无法仅创建SQL代理作业.

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

BACKUP.BAT:

sqlcmd -i backup.sql
Run Code Online (Sandbox Code Playgroud)

backup.sql:

backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
Run Code Online (Sandbox Code Playgroud)

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

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


如果您要创建的作业用于备份,索引维护或完整性检查,您还可以使用Ola Hallengren提供的出色维护解决方案.

它由一堆存储过程(以及SQL Server非Express版本的SQL Agent作业)组成,在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. 执行MaintenanceSolution.sql.此脚本创建所需的存储过程.

  3. 创建cmd文件以执行存储过程; 例如:
    sqlcmd -E -S.\ SQLEXPRESS -d master -Q"EXECUTE dbo.DatabaseBackup @Databases ='USER_DATABASES',@ Deirectory = N'C:\ Backup',@ BackupType ='FULL'" - b -o C:\登录\ DatabaseBackup.txt

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

  5. 安排任务.

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


geo*_*geo 32

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

为此,首先要创建一个名为sqljob.bat的批处理文件

sqlcmd -S servername -U username -P password -i path of sqljob.sql
Run Code Online (Sandbox Code Playgroud)

更换servername,username,passwordpath与你的.

然后创建名为sqljob.sql的SQL Script文件

USE [databasename]
--T-SQL commands go here
GO
Run Code Online (Sandbox Code Playgroud)

替换为[databasename]您的数据库名称.在USEGO当你写的SQL脚本是必要的.

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

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


mar*_*c_s 15

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

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