带有递归CTE的SQL OpenQuery

时间:2015-06-18 00:11:11

标签: sql-server common-table-expression recursive-cte

我有以下递归CTE,它在SQL中的OpenQuery函数中使用。 我使用OpenQuery来查询SQL链接服务器。

(不工作)

SELECT * FROM OPENQUERY([MyLinkedServerDB], 'WITH SPChainCTE (NAME, INHERIT_FROM) 
AS
(
    Select sp.NAME, sp.INHERIT_FROM from PRODUCT AS sp
    where NAME = ''ProductName''
    UNION ALL
    Select sp.NAME, sp.INHERIT_FROM from PRODUCT AS sp
    INNER JOIN SPChainCTE AS ch on sp.NAME = ch.INHERIT_FROM
)
Select NAME, INHERIT_FROM from SPChainCTE;
');

以上CTE不起作用。

但是,如果我使用OpenQuery执行非递归CTE,它可以正常工作。 (这有效)

SELECT * FROM OPENQUERY([FP], 'WITH SPChainCTE (NAME, INHERIT_FROM) 
AS
(
    Select sp.NAME, sp.INHERIT_FROM from ENG.FOCALPOINT.SW_PRODUCT AS sp
    where sp.NAME = ''ProductName''

)
Select NAME, INHERIT_FROM from SPChainCTE;
');

有什么建议吗?我在这里错过了什么吗?

0 个答案:

没有答案
相关问题