小弟需要再1个sql语句中 同时join2个不同数据库的不同的表,目前sql语句写完跨了2个数据库的表 但是写c#代码需要2个链接字符串,就遇到问题了 如何在一个SqlDataAdapter(sql,SqlConnection)里 把两个链接字符串全加载进去呢?不知道描述的明白不明白...

解决方案 »

  1.   

    如果是同一服务器上的两个数据库,用数据库的全路径名就可以了。比如:SELECT T1.*, T2.* 
    FROM [DB1].[dbo].[Table1] AS T1
    LEFT OUTER JOIN [DB2].[dbo].[Table2] AS T2
    ON T1.ID = T2.ID连接串中的initial catalog或database可以不填,或填缺省的那个数据库。如果是不同服务器上的两个数据库,则需要先在其中一个服务器上建一个Linked Server:
    http://msdn.microsoft.com/en-us/library/ff772782.aspx
    连接串填建了Linked Server的那个服务器。
      

  2.   

    一个连接字符串就可以解决了:
    select * from 当前数据库的表 inner join 第二个数据库的名.dbo.第二个数据库的表
    select * from Test inner join LyTest.dbo.bank 
      

  3.   

    不一定要两条连接,用台服务器之间建立链接后,用一台数据库访问另外一台。通过关联一次返回数据exec sp_addlinkedserver '链接名称',' ','SQLOLEDB','192.168.xx.xxx\SQLEXPRESS2008R2'
    exec sp_addlinkedsrvlogin '链接名称','false',NULL,'sa','xxxxxxx'--查询访问另一台数据库
    select * from  链接名称.数据库名.dbo.表名
    SELECT T1.*, T2.* 
    FROM [DB1].[dbo].[Table1] AS T1
    LEFT OUTER JOIN 链接名称.[DB2].[dbo].[Table2] AS T2
    ON T1.ID = T2.ID
      

  4.   

    先做数据库连接。
    http://www.cnblogs.com/insus/articles/1508648.html