使用链接数据库服务器将参数从当前数据库传递到链接数据库服务器



我想在SQL服务器中使用OPENQUERY编写一个选择查询,我必须从链接服务器中选择记录,但在where子句中,我必须比较日期,但日期应该来自当前数据库中存在的表,而不是链接服务器数据库中。 例如: 从 OPENQUERY 中选择 *(Linked_Server,'选择 * from db.table_name where Edate>(从 CurrentDB 中选择 edate('(

所以请帮助我如何将参数从当前数据库服务器传递到链接数据库服务器

Hiii 没有必要使用 OPENQUERY 您可以通过这种方式查询

select * from "linkservername"."DB NAME"."Tablename" where Edate > (select edate from CurrentDB)

试试这个。

在这里你可以找到不同的方法: https://support.microsoft.com/en-us/help/314520/how-to-pass-a-variable-to-a-linked-server-query

因此,例如,在您的情况下,它可以是这样的:

declare @dt char(8) = (select convert(char(8), edate, 112) from CurrentDB)  -- this should return 1 value only of date type
declare @sql varchar(4000) =
'select *
from openquery(MyLinkedServer, ''select * from db.table_name where Edate>''''' + @dt + ''''''')';
exec(@sql);

最新更新