请问有人可以解释一下如何在SQL Server Express版中创建作业吗?
请问有人可以解释一下如何在SQL Server Express版中创建作业吗?
SQL Server Express 不包括 SQL Server Agent, 因此无法创建 SQL Agent 作业。
您可以通过手动创建批处理文件和 SQL 脚本文件,并通过 Windows 任务计划程序运行它们来创建作业。
例如,您可以使用两个文件备份数据库:
backup.bat:
sqlcmd -i backup.sql
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
只需将两个文件放入同一文件夹中,并通过Windows任务计划程序执行批处理文件。
第一个文件只是一个Windows批处理文件,它调用sqlcmd实用程序并传递一个SQL脚本文件。
SQL脚本文件包含T-SQL。在我的示例中,只有一行用于备份数据库,但您可以放置任何T-SQL。例如,您可以执行一些UPDATE
查询。
由于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文件。
安排任务。
启动任务并验证它们是否成功完成。
在SQL Server Express版中,创建SQL Agent作业的功能不可用。一种替代方法是使用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
登录信息。
path of sqljob.sql
)。请记住,这里的 *.sql
文件只是一个文本文件。 - AbelSQL Server Express 版本在某些方面受到限制,其中一种方式是它们没有 SQL 代理程序,无法安排任务。
有一些第三方扩展可以提供此功能 - 您可以查看以下内容: