我想加入一个带有表的本地表,并通过远程链接服务器函数返回。
这就是我执行远程链接服务器功能的方式。
exec linkedServer.DB.dbo.sp_executesql N'SELECT * FROM FunctionA(''parameter'')'
我想加入本地桌面,如下所示:
select * from LocalTable a
left join
(exec linkedServer.DB.dbo.sp_executesql
N'SELECT * FROM FunctionA(''parameter'')') as b
on a.key = b.key
我该怎么做?我需要临时表吗?
答案 0 :(得分:3)
您需要使用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