Sql server 使用ServiceBroker异步执行参数化存储过程

Sql server 使用ServiceBroker异步执行参数化存储过程,sql-server,asynchronous,Sql Server,Asynchronous,我正在使用处的脚本使用ServiceBroker异步执行存储数据过程 问题:脚本传递了要调用的存储过程的名称,如下所示: exec usp_AsyncExecInvoke N'usp_MyLongRunningProcedure', @token output; 在这个查询中,usp_MyLongRunningProcedure是要异步执行的过程 但是,如何修改它,使其能够调用接受输入参数的存储过程 我所尝试的: exec usp_AsyncExecInvoke N'POI2Version7.

我正在使用处的脚本使用ServiceBroker异步执行存储数据过程

问题:脚本传递了要调用的存储过程的名称,如下所示:

exec usp_AsyncExecInvoke N'usp_MyLongRunningProcedure', @token output;
在这个查询中,usp_MyLongRunningProcedure是要异步执行的过程

但是,如何修改它,使其能够调用接受输入参数的存储过程

我所尝试的:

exec usp_AsyncExecInvoke N'POI2Version7.dbo.MatchFirstName=''' + @firstname 
+ ''', @checkbool = ' + cast(@checkbool as nvarchar(10))', @token output;

在上面的语句中,dbo.MatchFirstName是异步调用的过程。但是,我已经在+符号处出现语法错误。如何修改它?

使用页面顶部提到参数的链接:@Nick.McDermaid:谢谢你的链接,但是脚本在调用存储过程时直接获取值,如果我想向它们传递包含值而不是直接值的变量,该怎么办?这个脚本有可能吗?我不熟悉这个脚本,我只是读了这篇文章,但是在这个例子中,你得到了@p1=1.0,@n1=N'@id'。用@p1=@YourParameterNavariable、@n1=N'@MyParameterName'来代替它是很简单的,因为我对ServiceBroker不太熟悉,所以只是想确认一下连接或范围是否有变化。非常感谢。