使用t-sql创建一个CmdExec作业步骤

时间:2013-10-07 18:52:29

标签: sql-server tsql jobs

我想用sql server执行.exe。出于安全原因,我无法使用xp_cmdshell。所以我决定用CmdExec Step创建工作。

.exe文件必须接收2个参数。问题是我永远不知道参数。

Ex:我想给2个日期,今天和今天+ 1天。

在T-sql中很容易做到,所以可以使用t-sql INSIDE和CmdExec步骤吗?​​

1 个答案:

答案 0 :(得分:1)

首先,使用CmdExec步骤创建一个作业,这样的命令。

EXEC test.exe @Parm1, @Parm2

之后,在您的代码中执行.exe

 -- Update Job Step with real parameter
 UPDATE msdb.dbo.sysjobsteps 
 SET command = REPLACE(REPLACE(command,'@Parm1','NewParm1') ,'@Parm2','NewParm2')
 WHERE job_id = @YouJobIDHere
 AND step_id = @StepId 

 -- start job
  EXEC =  msdb.dbo.sp_start_job @job_name = @CustomJobName