有人可以向我解释如何在SQL Server Express
版本中创建工作吗?
有人可以向我解释如何在SQL Server Express
版本中创建工作吗?
Answers:
SQL Server Express不包含SQL Server Agent,因此无法仅创建SQL Agent作业。
您可以做的是:
您可以通过创建批处理文件和SQL脚本文件并通过Windows Task Scheduler运行它们来“手动”创建作业。
例如,您可以使用两个文件来备份数据库,如下所示:
backup.bat:
sqlcmd -i backup.sql
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
只需将两个文件放入同一个文件夹,然后通过Windows Task Scheduler执行批处理文件。
第一个文件只是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 Scheduled Tasks调度存储过程的执行。跟着这些步骤。
SQL Server Express没有SQL Server代理。因此,必须使用cmd文件和Windows Scheduled Tasks调度存储过程的执行。跟着这些步骤。
下载MaintenanceSolution.sql。
执行MaintenanceSolution.sql。该脚本创建所需的存储过程。
创建cmd文件以执行存储过程;例如:
sqlcmd -E -S。\ SQLEXPRESS -d master -Q“执行dbo.DatabaseBackup @Databases ='USER_DATABASES',@Directory = N'C:\ Backup',@BackupType ='FULL'” -b -o C:\ Log \ DatabaseBackup.txt在Windows计划任务中,创建任务以调用cmd文件。
安排任务。
启动任务,并验证它们是否已成功完成。
SQL Server Express Edition中不提供创建SQL代理作业的功能。一种替代方法是执行一个批处理文件,该批处理文件使用Windows Task Scheduler执行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 Task Scheduler执行批处理文件。
注意:之前针对此问题发布了几乎相同的答案。但是我觉得它不完整,因为它没有使用指定登录信息sqlcmd
。
path of sqljob.sql
为您使用的任何位置)。请记住,*.sql
这里的文件仅是文本文件而已。
SQL Server Express版本在某些方面受到限制-一种方式是它们没有允许您计划作业的SQL Agent。
有一些提供此功能的第三方扩展-请查看例如: