执行一个查询,该查询使用SQLConnector和SQLCommand连接来自2个或更多db的表

时间:2013-04-13 00:44:38

标签: c# .net sql-server-2008-r2

如何执行这样的查询;

    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'

SQLConnectorSQLCommand?看起来你只能一次连接到一个数据库。

我意识到我可以有两个SQLConnector实例,然后将结果加入到我的C#代码中,但显然这将是一个糟糕的解决方案。这有什么简单的解决方案吗?

1 个答案:

答案 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)

Create Linked Servers

然后您只需通过单个连接参考4部件名称 该4部分名称不限于SSMS
这个4部分名称可以通过.NET连接使用。