Асинхронный вызов хранимой процедуры в T-SQL

Как можно выполнить асинхронный вызов хранимой процедуры из другого?

Предположим, у меня есть две хранимые процедуры: SP1 и SP2 (это длительная хранимая процедура, занимает много времени для выполнения и не возвращает никакого результата).

Хранимая процедура SP1 определяется следующим образом:

CREATE PROCEDURE SP1 AS BEGIN --custom business logic --CALL to SP2, but async EXEC SP2 END 

Как вы могли бы сделать неблокирующий / асинхронный вызов SP, как указано выше в SQL Server 2008/2012?

Однажды я попытался добиться этого, завернув хранимую процедуру в Job, а затем вызывая задание в процедуре через sp_start_job system sp.

 EXEC dbo.sp_start_job N'Job name' ; 

Blockquote
Работает, пока нет аргументов. – RoastBeast Dec 22 '15 в 17:30

Вот версия с параметрами прохождения

  declare @variable -- job name declare @command -- command set @command = 'select * from table where data='[email protected] exec msdb..sp_add_job @job_name [email protected], @enabled=1, @start_step_id=1, @delete_level=1 --Job will delete itself after success exec msdb..sp_add_jobstep @[email protected], @step_id=1, @step_name='step1', @[email protected] exec msdb..sp_add_jobserver @job_name = @variable, @server_name = 'yourserver' exec msdb..sp_start_job @[email protected] 
Давайте будем гением компьютера.