在 SQL 报表生成器中使用两个数据库进行查询
我是 SQL Server Report Builder 2.0 的新手,我需要在一个查询中比较两个不同的数据库。基本上,我需要检查一个数据库表中的值是否存在于不同数据库的表中。
我知道我可以将多个数据源添加到我的报表中,并使用子报表访问每个数据源,但我创建的每个数据集只能有一个查询。那么我该如何使用一个查询来访问两个数据库呢?
或者,如果有另一种方法可以以某种方式连接多个数据集中的结果,那也可以。
此外,数据库位于同一服务器上。
I am new to SQL Server Report Builder 2.0 and I need to compare two different databases in one query. Basically I need to check if values from one database table exist in a different database's table.
I know I can add multiple Datasources to my report and access each one with Subreports, but each DataSet that I create can only have one query in it. So how can I go about using one query to access two databases?
Or if there is another way to somehow join my results from multiple DataSets, that would work too.
Also, the databases are on the same server.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将数据源指向服务器上的主表,而不是将其指向要从中提取数据的特定数据库。因此,您必须将所有表引用为 < DBName > .dbo。<表名>.<列名>
Point your DataSource at your master table on the server instead of pointing it at the specific database you want to pull from. As a result you will have to refer to all tables as < DBName >.dbo.< TableName >.< ColumnName >
如果数据库位于同一服务器上,您可以对存储过程执行一次查询,然后该过程访问第二个数据库。
因此,在您的报告中,您仍然会使用一个数据源,并执行一个存储过程,但是当查询在数据库上运行时,它会处理第二个数据库中的选择/连接。
通过这种方式,如果您需要这样做,您可以返回一个包含合并结果的数据集。我要提醒大家的是,跨数据库联接/选择等对于可维护性来说可能被认为是不好的做法,而且事实上,如果您决定将部署重组为多服务器设置,如果数据库不在同一台服务器上,那么您的联接将无法工作。
If the databases are on the same server you could do one query to a stored procedure, and then the proc accesses the 2nd database.
So in your report you would still use one datasource, and execute one stored proc, but then when the query runs on the database it handles the select / join whatever from the 2nd database.
By doing it this way you can return one dataset with the merged results if this is what you need to do. I will caution that cross database joins / selects etc can be considered bad practice for maintainability and the fact that if you decide to restructure your deployment to a multi server setup your joins wont work if the databases are not on the same server.