使用tsql创建ssis步骤的作业

时间:2015-02-17 16:18:47

标签: tsql ssis ssis-2012

我想使用存储过程创建sql server作业,我似乎无法正确使用它。 Integration Service Catologs - > SSIDB - > Cat1 - > Projects-> 999-> Packages-> 999.dtsx

在Package 1选项卡“Server:and Package:”下面的脚本的第1步中的属性是空的,我需要填充这些以及将32bit设置为true

以下是我得到的,提前谢谢

EXECUTE msdb..sp_add_job @job_name = 'Job 1', @owner_login_name = SUSER_NAME(), @job_id = @JobId OUTPUT

EXECUTE msdb..sp_add_jobserver @job_id = @JobId, @server_name = @@SERVERNAME

EXECUTE msdb..sp_add_jobstep @job_id = @JobId, @step_name = 'Step1',@database_name = DB_NAME(), @on_success_action = 3 ,@subsystem = N'ssis'
, @command = N' "\SSISDB\Cat1\999\999.dtsx" @SERVER=N"@ServerName"'

EXECUTE msdb..sp_add_jobstep @job_id = @JobId, @step_name = 'Step2', @command = 'execute msdb..sp_delete_job @job_name="Job 1"'

EXECUTE msdb..sp_start_job @job_id = @JobId

2 个答案:

答案 0 :(得分:1)

如果其他人遇到类似情况,找出实用的创建作业的最简单方法是使用UI(服务器代理->新作业)创建作业。创建您想要查看的所有内容,保存它,然后右键单击该作业。脚本Job As-> Create To->新查询,并且sql server将作业导出为查询,以便您查看需要执行的操作。

答案 1 :(得分:0)

在我们等待现有语法的澄清时,您需要关注的msdb..sp_add_jobstep的两个参数是@subsystem和@command。

,   @subsystem = N'SSIS'
,   @command = N'/ISSERVER "\"\SSISDB\POC\SSISConfigMixAndMatch\Package.dtsx\"" /SERVER "\".\dev2014\"" /X86 /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E'

GUI会愉快地构建这些选项,但您可以阅读dtexec文档并找到相同的脚本。

  • /ISSERVER这表明我们正在使用内置于SSISDB中的精彩新执行引擎
  • 我们将要执行的包传递给此选项
  • / SERVER将找到这些包的位置
  • 指定服务器名称和可选实例
  • / X86正如精细文档说明的那样,此选项 only 适用于从SQL Agent调用,但这是您指定需要使用32位dtexec.exe的方式
  • / Par根据需要指定参数值
  • 表示我们的标准Basic级别的日志记录
  • / Par的下一个实例指定调用者是否应该等待进程完成(同步与异步进程)。是的,工作步骤应该等待该过程完成。
  • /报告应报告哪些信息。这很奇怪,因为您用于获取SQL代理作业报告的有用信息不再存在。它只是说咨询SSISDB报告以获取更多信息
  • E,仅报告错误。