Sql server 如何在SQL Server Express edition中创建作业
有人能给我解释一下如何在Sql server 如何在SQL Server Express edition中创建作业,sql-server,sql-server-2008-express,sql-job,Sql Server,Sql Server 2008 Express,Sql Job,有人能给我解释一下如何在SQL Server Expressedition中创建作业吗?SQL Server Express,因此不可能只创建SQL代理作业 您可以做的是: 通过创建批处理文件和SQL脚本文件,并通过Windows任务计划程序运行它们,您可以“手动”创建作业。 例如,您可以使用以下两个文件备份数据库: 备份。bat: sqlcmd -i backup.sql backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
SQL Server Express
edition中创建作业吗?SQL Server Express,因此不可能只创建SQL代理作业
您可以做的是:通过创建批处理文件和SQL脚本文件,并通过Windows任务计划程序运行它们,您可以“手动”创建作业。
例如,您可以使用以下两个文件备份数据库: 备份。bat:
sqlcmd -i backup.sql
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
backup.sql:
sqlcmd -i backup.sql
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
只需将两个文件放在同一个文件夹中,并通过Windows任务调度器执行批处理文件
第一个文件只是一个Windows批处理文件,它调用并传递一个SQL脚本文件。SQL脚本文件包含T-SQL。在我的示例中,备份数据库只需一行代码,但您可以将任何T-SQL放入其中。例如,您可以改为执行一些
UPDATE
查询
如果要创建的作业用于备份、索引维护或完整性检查,还可以使用Ola Hallengren提供的优秀作业 它由一组存储过程(以及SQL Server非Express版本的SQL代理作业)组成,在中有一节介绍如何在SQL Server Express上运行作业: 如何在SQL Server Express上开始使用SQL Server维护解决方案? SQL Server Express没有SQL Server代理。因此,必须使用cmd文件和Windows计划任务来计划存储过程的执行。遵循以下步骤 SQL Server Express没有SQL Server代理。因此,执行 必须使用cmd文件和 Windows计划的任务。遵循以下步骤
sqlcmd-E-S.\SQLEXPRESS-d master-Q“EXECUTE dbo.DatabaseBackup@Databases='USER\u Databases',@Directory= N'C:\Backup',@BackupType='FULL'-b-o C:\Log\DatabaseBackup.txt
SQL Server Express版本在某些方面受到限制—一种是它们没有允许您计划作业的SQL代理 有一些第三方扩展提供了该功能-请查看,例如:
- (最新更新自2005年,不再维护)
sqlcmd -S servername -U username -P password -i <path of sqljob.sql>
将[databasename]
替换为您的数据库名称。编写SQL脚本时,必须执行使用
和执行
sqlcmd
是执行SQL脚本的命令行实用程序。创建这两个文件后,使用Windows任务调度器执行批处理文件
NB:之前,针对这个问题发布了几乎相同的答案。但我觉得它不完整,因为它没有使用
sqlcmd
指定登录信息。如果您指的是SQL代理作业,则该功能在Express edition中不可用。有关其他可能性,请参见此问题的答案:Express edition支持SQL Server Broker,您可以创建自定义机制,如我应该在何处指定登录信息?@HasanGürsoy如果您正在创建运行SQLCMD(带有或不带BAT文件)的计划任务,我建议您使用SQLCMD的“-E”参数,用于windows身份验证。为此,请为windows用户定义SQL Server登录,该用户是windows计划任务的所有者。如果不清楚任务在哪个windows登录下运行,请将“WHOAMI”(DOS命令)放在BAT文件中并捕获BAT文件输出,以查看谁在执行。@HasanGürsoy,或者,对于SQL Server身份验证,我会将密码放在windows计划任务中(权限控制谁可以读取密码),而不是放在任何文件中。它位于BAT文件命令行上。如果它是传递给BAT文件的第一个参数,那么在BAT文件中,您可以将其称为%1,例如在SQLCMD行上。我将在哪里保存该sqljob.sql?我怎样才能确定它何时执行?@WTFZane,这无关紧要,只要批处理文件的执行者能够提供该位置。(在上面的脚本中,将sqljob.sql的路径替换为您使用的任何位置)。记住这里的*.sql
文件只不过是一个文本文件。