我尝试动态子查询另一个数据库(db2)并根据结果更新当前表(db1.t1)。字段位置(db1.t1.location)确定应该是哪个数据库(db2)。我通常使用vba完成此操作,但是,我循环遍历每一行。很简单,我100%sql等效将更有效。
我想做的是拥有2个数据库
DB1
DB2(根据DB1中的值选择数据库)
e.g。如果db1.dbo.t1.location =' North'那么DB2 name =' DBNorth',如果db1.dbo.t1.location =' South'那么DB2名称=' DBSouth'。
不确定从何处开始加入/更新字段。
以下是我想要完成的事情:
感谢所有帮助!
答案 0 :(得分:0)
我认为你不能加入数据库(虽然我不是100%肯定)......但是 要使用不同数据库中的表,可以使用dbname..tablename。 所以你可以内心加入他们。 也许你可以试试:
select * from db1..t1 d1 inner join db2..t1 d2 on d1.location=d2.location
并且在您的情况下,由于数据库名称在数据库db1中,您可以先将它们提取到临时表,然后遍历临时表,在循环中更新数据
答案 1 :(得分:-1)
您可以使用字符串构建查询并使用exec执行它。