开始对话的标准格式是这样的:
Declare @dialog_handle UNIQUEIDENTIFIER
BEGIN DIALOG CONVERSATION @dialog_handle
FROM SERVICE initiator_1
TO SERVICE 'target_1'
ON CONTRACT MyContract ;
Run Code Online (Sandbox Code Playgroud)
但是我想创建一个灵活的通用过程,它可以从多个启动器服务中的任何一个发送特定对话(假设我有 10 个使用相同存储过程的潜在启动器服务)。
Create Procedure SendJoinRequest (@initiatorServiceName varchar)
AS
Declare @dialog_handle UNIQUEIDENTIFIER
BEGIN DIALOG CONVERSATION @dialog_handle
FROM SERVICE @initiatorServiceName
TO SERVICE 'target_1'
ON CONTRACT MyContract ;
Run Code Online (Sandbox Code Playgroud)
我想这行不通,因为服务的标识符在
FROM SERVICE @initiatorServiceName
Run Code Online (Sandbox Code Playgroud)
实际上不能是字符串,而必须是服务的实际名称...是否有一种简单的方法可以将其作为参数传递?或者我是否必须将所有这些嵌套在一个令人讨厌的串联字符串执行中?
@String = blahblah + blah blah + escapecharacters + blah
execute(@String)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助