如何在运行SSIS包的SQL Server代理作业中创建步骤?

我正在尝试为SQL Server代理创建自动化作业以运行。该工作应该运行我的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了在某处找到的一些旧代码。在作业中运行SSIS包的正确语法是什么?


一只甜甜圈
浏览 945回答 2
2回答

沧海一幻觉

我在问题中运行了SQL脚本,但没有遇到任何错误。因此,我不确定是什么导致您的错误。但是,如果您可以SQL Server Agent通过SQL Server Management Studio 访问。以下是使用图形用户界面创建作业的步骤。转到SQL Server Management Studio。展开SQL Server Agent并右键单击Jobs,然后选择New Job...如屏幕快照1所示。提供名称,默认情况下,所有者将是创建作业的帐户,但是您可以根据需要进行更改。如果您愿意,请分配一个类别,并提供描述。请参阅屏幕截图2。在“步骤”部分,单击New...如屏幕快照3所示。在“新建作业步骤”对话框中,提供步骤名称。SQL Server Inegration Services Package从类型中选择。SQL Agent Service Account默认情况下,将运行此步骤。选择包源,File system然后单击省略号浏览到包路径。这将填充Package路径。请参阅屏幕截图4。如果你不希望步下的执行SQL Agent Service Account,然后参照步骤#8 - 9知道你如何使用不同的帐户。如果软件包具有SSIS配置文件(.dtsConfig),请单击“ 配置”选项卡并添加配置文件,如屏幕快照5所示。单击OK,然后在步骤1中找到该软件包,如屏幕快照6所示。同样,您可以创建不同的步骤。创建作业后,您可以右键单击该作业,然后选择Script Job as --> CREATE To --> New Query Editor Window生成脚本,如屏幕快照#7所示。要在其他帐户下运行SSIS步骤,请在Management Studio上,导航至Security --> right-click on Cedentials --> select New Credential...如屏幕快照#8所示。在New Credential对话框上,提供一个凭据名称,Windows帐户和密码,您要在该名称下执行SQL作业中的SSIS步骤。请参阅截图9。将创建凭据,如屏幕截图10所示。接下来,我们需要创建一个代理。在Management Studio上,导航至SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy...如屏幕快照#11所示。在“新代理帐户”窗口上,提供代理名称,选择新创建的凭据,提供描述,然后选择SQL Server Integration Services软件包,如屏幕快照12所示。应该创建代理帐户,如屏幕截图13所示。现在,如果返回到SQL作业中的步骤,则应该在“ 运行方式”下拉列表中看到新创建的代理帐户。请参阅截图14。希望能有所帮助。屏幕截图1:屏幕截图2:屏幕截图3:屏幕截图4:屏幕截图5:屏幕截图6:屏幕截图7:截图8:屏幕截图9:

猛跑小猪

如果您使用sp_add ... procs构建作业,我认为您需要显式设置要调用的子系统,例如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命令执行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server