我想用 sql server 执行一个 .exe。出于安全原因,我不能使用xp_cmdshell
. 所以我决定使用 CmdExec Step 创建作业。
.exe 文件必须接收 2 个参数。问题是我永远不知道参数。
例如:我想给出 2 个日期,今天和今天 + 1 天。
在 T-sql 中很容易做到,所以可以在 CmdExec 步骤中使用 t-sql 吗?
我想用 sql server 执行一个 .exe。出于安全原因,我不能使用xp_cmdshell
. 所以我决定使用 CmdExec Step 创建作业。
.exe 文件必须接收 2 个参数。问题是我永远不知道参数。
例如:我想给出 2 个日期,今天和今天 + 1 天。
在 T-sql 中很容易做到,所以可以在 CmdExec 步骤中使用 t-sql 吗?
首先,使用 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