s-s-rS 报表生成器 2.0 如何链接 2 个服务器并在一个数据集中运行
Posted
技术标签:
【中文标题】s-s-rS 报表生成器 2.0 如何链接 2 个服务器并在一个数据集中运行【英文标题】:s-s-rS report builder 2.0 How to link 2 servers and run in one dataset 【发布时间】:2013-12-28 22:14:30 【问题描述】:我正在尝试在 s-s-rS 报告生成器 2.0 中找到一种链接来自两台服务器的数据的方法
最终使用一个数据集查询 2 个不同服务器中的 2 个数据库。
我拥有的 SQL 非常基本,如下所示,我可以在 SQL 管理工作室中轻松运行查询。
select * from
[server1].[DES].[dbo].[Daily] dr
LEFT JOIN [server2].[VES].[dbo].[Rou] mr
ON dr.ID = mr.id
此外,我对报告服务器的访问权限是只读的,因此我无法对配置进行任何管理更改。
我已经探索了连接字符串来创建连接,但它只允许我为每个数据集连接到一个服务器。我想做的是使用一个数据集
任何帮助将不胜感激,因为我是 SQL 和 s-s-rS 的初级人员
使用 s-s-rS 和 MS SQL 2008 R2
【问题讨论】:
【参考方案1】:如果您从 SSMS 执行此查询,则表示此其他服务器 是一个链接服务器。那么执行它应该没有什么不同 s-s-rS。
是的,您只能将一台服务器添加到您的数据源 您的数据集是共享数据源还是嵌入式数据集。
但是例如,如果您有一个指向服务器 A 的数据源 当您执行将从服务器 A 提取数据的查询时 并且还从服务器 B 中,您将使用完全限定名称 来自服务器 B 的对象和来自服务器 A 的两部分名称。
类似这样的...
SELECT *
FROM Schema.Table_Name A INNER JOIN [ServerNameB].DataBase.Schema.TableName B
ON A.ColumnA = B.ColumnA
显然ServerB
必须是Linked Server
。
【讨论】:
【参考方案2】:我能想到两种可能的解决方案
选项 1: 在 server1 上创建存储过程(通过查询访问另一台服务器)。并从 s-s-rS(数据集)调用此存储过程。
选项 2: 在 RDL 上创建两个具有两个不同连接字符串的数据集(一个用于 Server1,另一个用于 Server2)。 使用 Report Builder 中的“LookUpDataSet”函数使用关键字段合并结果。
选项 2 更可取。
【讨论】:
以上是关于s-s-rS 报表生成器 2.0 如何链接 2 个服务器并在一个数据集中运行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用分组和分页符来创建双面 s-s-rS 徽章报告? (Microsoft SQL Server 2012 报表生成器)
在 s-s-rS 报告中使用 2 个子报告或 2 个 tablix 哪种方法更好?
无法在 s-s-rS 和 SQL Server 报表生成器中运行或预览报表