首页 > 解决方案 > 使用递归 CTE 在 SQL OpenQuery 中发送参数

问题描述

我有以下递归 CTE,它在 SQL 中的 OpenQuery 函数中使用我使用 OpenQuery 来查询 SQL 链接服务器。该请求不起作用,因为行 Line 中的值未传输。如何从 OpenQuery 中的 Line 列传输值?

DECLARE @OpenSelect varchar(MAX)
DECLARE @resTable TABLE(ID VARCHAR(50), OLDVAL VARCHAR(MAX), NEWVAL VARCHAR(MAX), WHONAME VARCHAR(100), TIME DATETIME, FIELD VARCHAR(100))

SET @OpenSelect = ('SELECT 
;with cte as (select Line from [dbo].[#LineID])

FROM openquery (DB, ''select ID, OLDVAL, NEWVAL, WHONAME, TIME, FIELD 
from TASKYM1 
where ID IN ( Line )
'')
')

INSERT INTO @resTable (ID, OLDVAL, NEWVAL, WHONAME, TIME, FIELD) EXECUTE(@OpenSelect)  

table [dbo]. [# LineID] contains prepared data separated by commas, for example:
Line
1 'ID1111','ID1112','ID1113','ID1114','ID1115','ID1116','ID1117','ID1118'
2 'ID1119','ID1120','ID1121','ID1122','ID1123','ID1124','ID1125','ID1126'
3 'ID1127','ID1128','ID1129','ID1130','ID1131','ID1132','ID1133','ID1134'
4 ....
5 ....

标签: sqltsqlrecursive-queryopenquery

解决方案


推荐阅读