2012-10-11 48 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的跨服務器報告,請讓我知道 - 我很想知道他們是如何做到的。

相關問題