是否可以通过一个连接请求从多个dbs获取数据

时间:2009-07-23 07:31:07

标签: c# sql-server database

我需要处理这个设计不佳的数据库,其中通过向服务器添加新数据库来建立新的数据组。所以我必须从多dbs中获取数据,我想知道有没有办法通过一个连接获取所有组数据?我正在使用c#。

2 个答案:

答案 0 :(得分:1)

(除此之外:是否有可能影响设计?这听起来部分就像数据库架构名称的设计......)

有时可能(例如在SQL Server中使用database.schema.object表示法,甚至server.database.schema.object),但我不推荐它,因为相同的方法不适合所有用例,它打破了许多最佳实践指南。我强烈建议您只为每个数据库生成连接字符串,可能使用DbConnectionStringBuilder或更具体的变体,如SqlConnectionStringBuilder

如果你担心有太多的开放(池化)连接,你可以在动态连接上禁用池化(但是你需要自己处理连接管理;我个人很想让池子启用,直到我能证明有一个问题)。

答案 1 :(得分:0)

如果所有数据库都在同一台服务器上,您可以使用与主数据库连接的连接中的全名来查询它们。您可能需要使用此设计动态构建所有代码,因为您事先并不知道需要连接到哪个数据库。

select * from database1.dbo.mytable m
join  database2.dbo.mytable m2 on m.id = m2.id