首页 > 解决方案 > SQL Server Linked Server openquery for WHERE 子句

问题描述

我正在尝试编写一个查询来获取我的服务器和链接服务器之间的增量。所以我写了以下内容,直到:

Select MD5 FROM  ServerA A
WHERE NOT EXISTS
(
SELECT 1
FROM [LinkedServer].[Database].[dbo].[Files] fi
WHERE A.MD5High = fi.MD5High AND A.MD5Low = fi.MD5Low
)

但是,这会将所有数据从 LinkedServer 拉到我的服务器,这会导致我的服务器用完资源。所以我的下一个尝试是在链接服务器上执行查询

Select MD5 FROM  ServerA A
WHERE NOT EXISTS
(
SELECT 1
FROM OPENQUERY( [LinkedServer] , 'SELECT [LinkedServer].[Database].[dbo].[Files] fi
WHERE fi.MD5High = ' + A.MD5Low + ' AND  fi.MD5Low= ' + a.MD5Low + '')
)

但是,第二个查询中的语法不正确,我想不出正确的语法。

我很欣赏任何方向

标签: sql-serverlinked-serveropenquery

解决方案


推荐阅读