MSSQL 加入本地 table 与远程链接服务器函数 table

MSSQL join a local table with a remoted linked server function table

我想通过远程 link 服务器功能加入本地 table 和 table 以及 return。

这就是我执行远程 link 服务器功能的方式。

exec linkedServer.DB.dbo.sp_executesql N'SELECT *  FROM FunctionA(''parameter'')' 

我想像这样加入本地 table:

select * from LocalTable a 
left join 
    (exec linkedServer.DB.dbo.sp_executesql 
          N'SELECT * FROM FunctionA(''parameter'')') as b 
on a.key = b.key

我该怎么做?我需要临时工 table 才能做到这一点吗?

您需要使用 OPENQUERY,并且为了使连接需要将函数列名称添加到 ;WITH b(col1, col2, ...)

之类的部分
;WITH b(key) AS (
    SELECT * FROM OPENQUERY (linkedServer, N'SELECT * FROM DB.dbo.FunctionA(''parameter'')')
)
SELECT * FROM LocalTable a
    LEFT JOIN b on a.key = b.key

或者你可以不带

SELECT * FROM LocalTable a
    LEFT JOIN (SELECT * FROM OPENQUERY (linkedServer, N'SELECT * FROM DB.dbo.FunctionA(''parameter'')'))b(key) 
        on a.key = b.key