如何在我的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作业的步骤。

  1. 转到SQL Server Management Studio。 展开SQL Server Agent并右键单击作业,然后selectNew Job... ,如屏幕截图# 1所示。

  2. 提供一个名称和所有者默认情况下将创build作业的帐户,但您可以根据您的要求进行更改。 如果您想要并指定一个类别并提供说明。 请参阅截图# 2

  3. 在“步骤”部分,单击“ New... ,如屏幕截图# 3所示。

  4. 在“新build作业步骤”对话框中,提供一个步骤名称。 从types中selectSQL Server Inegration Services Package 。 此步骤默认情况下将在SQL Agent Service Account下运行。 select软件包源File system并通过点击省略号浏览到软件包path。 这将填充包path。 请参阅截图# 4 。 如果您不希望在SQL Agent Service Account下执行此步骤,请参阅步骤# 89了解如何使用其他帐户。

  5. 如果你有一个包的SSISconfiguration文件(.dtsConfig),点击configuration选项卡,并添加configuration文件,如屏幕截图# 5所示。

  6. 点击确定,并在屏幕截图# 6中显示了步骤1中的软件包。 同样,您可以创build不同的步骤。

  7. 创build作业后,可以右键单击该作业并select“ Script Job as --> CREATE To --> New Query Editor Window以生成脚本,如屏幕截图# 7所示。

  8. 要在不同的帐户下运行SSIS步骤,请在Management Studio上导航到Security --> right-click on Cedentials --> select New Credential... ,如截图# 8所示。

  9. 在“ New Credential对话框中,提供您想要在SQL作业中执行SSIS步骤的证书名称,Windows帐户和密码。 请参阅截图# 9 。 Credential将被创build,如截屏# 10所示。

  10. 接下来,我们需要创build一个代理。 在Management Studio上,导航到SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy... ,如截图# 11所示。

  11. 在“新build代理帐户”窗口中,提供一个代理名称,select新创build的凭据,提供描述并selectSQL Server Integration Services包,如屏幕截图# 12所示。 应该按照屏幕截图# 13所示创build代理帐户。

  12. 现在,如果您返回到SQL作业中的步骤,您应该在“ 运行方式”下拉菜单中看到新创build的代理帐户。 请参阅截图# 14

希望有所帮助。

屏幕截图#1:

1

屏幕截图#2:

2

屏幕截图3:

3

屏幕截图#4:

4

屏幕截图5:

五

屏幕截图#6:

6

屏幕截图#7:

7

屏幕截图#8:

8

屏幕截图#9:

9

屏幕截图#10:

10

屏幕截图#11:

11

屏幕截图#12:

12

屏幕截图#13:

13

屏幕截图#14:

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命令。