请问任何人请解释我如何在SQL Server Express
版本中创建工作?
答案 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计划任务。请按照以下步骤操作。
下载MaintenanceSolution.sql。
执行MaintenanceSolution.sql。该脚本创建了您需要的存储过程。
创建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在Windows计划任务中,创建调用cmd文件的任务。
安排任务。
- 醇>
启动任务并验证它们是否已成功完成。
答案 1 :(得分:31)
SQL Server Express Edition中不提供创建SQL代理作业的功能。另一种方法是执行批处理文件,该文件使用Windows任务计划程序执行SQL脚本。
为了做到这一点,首先要创建一个名为 sqljob.bat 的批处理文件
sqlcmd -S servername -U username -P password -i path of sqljob.sql
用您的servername
,username
,password
和path
替换。
然后创建名为 sqljob.sql
的SQL脚本文件USE [databasename]
--T-SQL commands go here
GO
将[databasename]
替换为您的数据库名称。编写SQL脚本时需要USE
和GO
。
sqlcmd
是一个用于执行SQL脚本的命令行实用程序。创建此两个文件后,使用Windows任务计划程序执行批处理文件。
NB:之前已经针对此问题发布了几乎相同的答案。但我觉得它不完整,因为它没有使用sqlcmd
指定登录信息。
答案 2 :(得分:15)
SQL Server Express版本在某些方面受到限制 - 一种方式是它们没有允许您安排作业的SQL代理。
有一些第三方扩展提供了这种功能 - 例如: