0

SQL の OpenQuery 関数で使用される次の再帰 CTE があります。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;
');

助言がありますか?ここで何か不足していますか?

4

0 に答える 0