如何在我的SQL Server代理作业中创build一个将运行我的SSIS包的步骤?
我正在尝试为SQL Server代理运行创build一个自动作业。 这项工作应该运行我的SSIS包。
以下是我到目前为止:
EXEC sp_add_job @job_name = 'My Job' ,@description = 'My First SSIS Job' ,@job_id = @jobid OUTPUT EXEC sp_add_jobstep @job_id =@jobid ,@step_name = N'Upload Data' ,@step_id = 1 ,@command=N'/FILE "D:\Installs\Upload.dtsx"' EXEC sp_add_jobstep @job_id = @jobid ,@step_name = N'Download Data' ,@step_id = 2 ,@command=N'/FILE "D:\Installs\Download.dtsx"'
不幸的是,当我运行这个,我得到一个错误说
'/'附近语法不正确
我怀疑是在抱怨/FILE
在我的命令。
我在任何地方都找不到有关在@command中使用的适当语法的文档 – 我将/FILE
从我在某处find的一些旧代码中拉出来。 在作业中运行SSIS包的正确语法是什么?
我在问题中运行了SQL脚本,但没有遇到任何错误。 所以,我不确定是什么原因导致了你的错误。 但是,如果您有权通过SQL Server Management Studio访问SQL Server Agent
。 以下是使用graphics用户界面创build作业的步骤。
-
转到SQL Server Management Studio。 展开
SQL Server Agent
并右键单击作业,然后selectNew Job...
,如屏幕截图# 1所示。 -
提供一个名称和所有者默认情况下将创build作业的帐户,但您可以根据您的要求进行更改。 如果您想要并指定一个类别并提供说明。 请参阅截图# 2 。
-
在“步骤”部分,单击“
New...
,如屏幕截图# 3所示。 -
在“新build作业步骤”对话框中,提供一个步骤名称。 从types中select
SQL Server Inegration Services Package
。 此步骤默认情况下将在SQL Agent Service Account
下运行。 select软件包源File system
并通过点击省略号浏览到软件包path。 这将填充包path。 请参阅截图# 4 。 如果您不希望在SQL Agent Service Account
下执行此步骤,请参阅步骤# 8 – 9了解如何使用其他帐户。 -
如果你有一个包的SSISconfiguration文件(.dtsConfig),点击configuration选项卡,并添加configuration文件,如屏幕截图# 5所示。
-
点击确定,并在屏幕截图# 6中显示了步骤1中的软件包。 同样,您可以创build不同的步骤。
-
创build作业后,可以右键单击该作业并select“
Script Job as --> CREATE To --> New Query Editor Window
以生成脚本,如屏幕截图# 7所示。 -
要在不同的帐户下运行SSIS步骤,请在Management Studio上导航到
Security --> right-click on Cedentials --> select New Credential...
,如截图# 8所示。 -
在“
New Credential
对话框中,提供您想要在SQL作业中执行SSIS步骤的证书名称,Windows帐户和密码。 请参阅截图# 9 。 Credential将被创build,如截屏# 10所示。 -
接下来,我们需要创build一个代理。 在Management Studio上,导航到
SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy...
,如截图# 11所示。 -
在“新build代理帐户”窗口中,提供一个代理名称,select新创build的凭据,提供描述并selectSQL Server Integration Services包,如屏幕截图# 12所示。 应该按照屏幕截图# 13所示创build代理帐户。
-
现在,如果您返回到SQL作业中的步骤,您应该在“ 运行方式”下拉菜单中看到新创build的代理帐户。 请参阅截图# 14 。
希望有所帮助。
屏幕截图#1:
屏幕截图#2:
屏幕截图3:
屏幕截图#4:
屏幕截图5:
屏幕截图#6:
屏幕截图#7:
屏幕截图#8:
屏幕截图#9:
屏幕截图#10:
屏幕截图#11:
屏幕截图#12:
屏幕截图#13:
屏幕截图#14:
如果你正在使用sp_add … procs来创build这个工作,我想你需要明确地设置被调用的子系统,一个la
EXEC sp_add_jobstep @job_id = @jobid, @step_name = N'Upload Data', @step_id = 1, @subsystem = 'DTS', @command=N'/FILE "D:\Installs\Upload.dtsx"'
这相当于@ Siva的屏幕截图#4'Type'='SQL Server Integration Services Package'。
有关完整的子系统列表,请参阅此 MSDN文章。
编辑 :'TSQL'是默认的,所以你当前的设置是试图执行'/ FILE“D:\ Installs \ Upload.dtsx”'作为T-SQL命令。