我想在SQL服务器中使用OPENQUERY编写一个select查询,我必须从链接服务器中选择记录但在where子句中我必须比较日期,但日期应该来自当前数据库中不存在的表服务器DB。 例如: 从OPENQUERY中选择*(Linked_Server,'select * from db.table_name,其中Edate>(从CurrentDB中选择edate)')
所以请帮助我如何将参数从当前数据库服务器传递到链接数据库服务器
答案 0 :(得分:0)
Hiii没必要使用OPENQUERY 你可以这样查询
select * from "linkservername"."DB NAME"."Tablename" where Edate > (select edate from CurrentDB)
试试这个。
答案 1 :(得分:0)
您可以在此处找到不同的方法: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);