如何执行这样的查询;
SELECT
c.Name
FROM db1..TableA a(nolock)
join db2..TableA b(nolock) on a.id = b.id
join db2..TableB c(nolock) on b.id = c.id
join db2..TableC as d on c.id = d.id
where c.id = '2314'
SQLConnector
和SQLCommand
?看起来你只能一次连接到一个数据库。
我意识到我可以有两个SQLConnector
实例,然后将结果加入到我的C#代码中,但显然这将是一个糟糕的解决方案。这有什么简单的解决方案吗?
答案 0 :(得分:2)
如果您指的是单个服务器,那么您可以使用三个部分名称
但是这个名字要求所有者通常是dbo
尝试
SELECT
c.Name
FROM db1.dbo.TableA a(nolock)
join db2.dbo.TableA b(nolock) on a.id = b.id
join db2.dbo.TableB c(nolock) on b.id = c.id
join db2.dbo.TableC as d on c.id = d.id
where c.id = '2314'
如果您右键单击SSMS中的表并单击选择前1000行,它将构建正确的3部分名称。
如果数据库位于不同的服务器上。
通过链接服务器,您可以在单个连接上访问多个服务器。
Linked Servers (Database Engine)
然后您只需通过单个连接参考4部件名称
该4部分名称不限于SSMS
这个4部分名称可以通过.NET连接使用。