【发布时间】:2023-03-05 07:49:01
【问题描述】:
首先我试着解释一下情况。 我将过滤器表达式存储在一列中,由换行符分隔。基本想法是这样的:
SELECT
'SELECT ''' + REPLACE(topic_filter,CHAR(10),''' UNION ALL SELECT ''') + ''''
FROM dbo.topic_filter T
WHERE
T.id = @id
FOR XML PATH('')
在此之后,我只需执行此字符串以将数据放入临时表中。
我的问题从这里开始。
sn -p 在一个存储过程中,被多个存储过程用来生成要填充的基源。
方法一:
从另一个 SP 调用此 sp 以填充临时表。
结果 1:
INSERT EXEC 语句不能嵌套。
(如果我只是用 exec dbo... 风格调用代码正在工作。如果我尝试在存储过程中调用,我只会收到错误)
方法2:
我将上面的代码放入表值函数中。
结果 2:
在函数中无效使用副作用运算符“INSERT EXEC”。
(函数本身不编译)
谢谢,
彼得
【问题讨论】:
标签: sql stored-procedures exec user-defined-functions