Sql-Server-2008-R2
在另一個作業中呼叫 SQL Server 作業
是否可以呼叫 SQL Server 作業在另一個作業中執行?
我知道我們可以將 Job 1 的所有步驟添加到 Job 2,但我不想這樣做。首先,作業 2 已經很大,其次我找不到複製粘貼選項來在作業之間複製步驟,因此手動添加步驟會很耗時。
任何建議表示讚賞。
- 右鍵點擊要添加其步驟的作業,然後選擇“腳本作業為->創建到新查詢視窗”,在生成的腳本中查找具有此格式的所有部分
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'<stepname>', @step_id=1, @cmdexec_success_code=0, @on_success_action=3, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'<code>', @database_name=N'', @flags=0
- 打開一個新的查詢視窗並執行:
DECLARE @jobId BINARY(16) SET @jobId = (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = '<job name, to which you want to copy the steps>') -- Followed by all the msdb.dbo.sp_add_jobstep from the script that scripted out in the earlier step EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'<stepname>', @step_id=1, @cmdexec_success_code=0, @on_success_action=3, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'<code>', @database_name=N'', @flags=0