2012-10-11 49 views
0

我想在SSMS中构建一个报告,以便您可以单击某个对象,选择该报告并查询数据源(而不是您正在查看的服务器)以返回有关该对象的信息。SSMS报告 - 使用与正在报告的服务器不同的数据源?

我见过的所有SSMS报告都使用了一个空的数据源(Data Source=.),以便SSMS根据您点击的任何数据库/服务器/对象运行它。我将历史信息保存在不同的服务器上。

我知道这是可能的;根据http://sqlbg.wordpress.com/2011/03/06/how-to-create-custom-reports-for-sql-server-management-studio/有6个参数通过。我想对我的数据源运行查询,理想情况下将这6个参数传递给我的存储库数据源上的SP。

我在上面的链接中获取了代码并创建了一个RDL,然后将其导入到我的项目中(SSDT和BIDS 2005都是同一个问题)。它在预览模式下工作,从报告中的Embedded Datasource返回数据集 - 但是当我在SSMS中打开RDL时,我得到“无效对象名称”mytablename“'(其中mytablename是我查询中表的名称) 。因此,它看起来不正确地使用数据源。Profiler证实了这一点 - 当时没有登录到服务器

我已经成功地在SSDT和BIDS 2005(8.0.50727.4039,Microsoft Visual Studio 2005和工具应用程序)

非常感谢!

+0

您正在使用什么版本的SSMS(点击help-about)以及哪个版本的BIDS? (如果可以的话,让我们回到使用BIDS来做这件事 - 我不知道有人在SSDT中做SSMS报告,尽管这可能是可能的,但这是一个更难的问题。) –

+0

SSMS 2012(11.0.2100.60),查询SQL Server 2012.我使用SSDT,帮助 - 关于显示Visual Studio 10.0.40219.1 SP1。我会尝试在BIDS 2005中做同样的事情(我看到一个连接项目说2008年在SSMS 2008中不起作用)。运行配置文件跟踪并没有看到连接,因此它看起来像是某种数据源。 – mbourgon

+0

@BrentOzar在BIDS 2005中完全相同的问题。使用来自sqlbg的代码(在主要问题中)来创建模板。在项目中创建一个本地数据源,在Layout中获得我的查询,添加字段并在Preview中返回数据。尝试在SSMS中打开它,并为我查询的表获取“无效的对象名称”,并且Profiler不会显示与该表的服务器的任何连接。仍然认为SSMS不喜欢数据源。 – mbourgon

回答

0

看来,SSMS将只使用你点击作为数据源的SQL Server中,不管你实际使用的东西。这是可能是为了安全性,但它会使跨服务器报告更加困难。

要解决这个问题,我使用只具有读取权限的特定用户创建了链接服务器(RPC OUT on,collat​​ion compatible = true)。

如果有人知道任何跨SSMS的跨服务器报告,请让我知道 - 我很想知道他们是如何做到的。

相关问题