2013-07-30 44 views
-2

我想先運行下面的過程:我可以在SSRS中的查詢生成器中編寫存儲過程嗎?

exec ep_upd_server_abc 

然後執行以下語句:

SELECT * FROM dbo.Server_Warehouse 
WHERE Enabled = 'f' and disabledweekly = 'f' 

我可以寫在SSRS查詢生成器下面的過程,這樣我可以執行兩個語句?

CREATE PROCEDURE ShowDBJob 
As 
Begin 
    exec ep_upd_server_abc; 

    SELECT * FROM dbo.Server_Warehouse 
    WHERE Enabled = 'f' and disabledweekly = 'f' 
End 

有沒有解決這個問題的方法?

我試着在SSRS查詢生成器中運行它,它給我一個錯誤。將不勝感激任何想法和建議...謝謝!

+0

您是否嘗試在查詢生成器中運行這兩個語句(存儲過程調用和SELECT)? – user1578107

+0

我不知道這是否會起作用,但是...'declare @table TABLE(的結果)插入@table exec ep_upd_erver_abc select * from @table union all select * from dbo.server_warehouse where enabled =' F'and disabledweekly ='f'' – SQLMason

+0

它給了你什麼錯誤? – Pete

回答

4

爲什麼不只是做

CREATE PROCEDURE ShowDBJob 
As 
Begin 
    exec ep_upd_server_abc; 

    SELECT * FROM dbo.Server_Warehouse 
    WHERE Enabled = 'f' and disabledweekly = 'f' 
End 

這個確切的過程在SQL Management Studio並調用?在SSRS恕我直言,不要做任何類型的實時事件驅動編碼或過程。滑動斜坡,您試圖使用相當於錘子的螺絲刀,反之亦然。 SQL管理工作室的目的是設計過程和直接訪問SQL Server數據庫的對象創建。 SSRS旨在返回數據連接,數據集的結果,評估要顯示的一個或多個對象上的數據集的顯示,除了這些事物的特徵/語法之外,沒有更多。即使訪問臨時表'#(something)'和動態聲明的參數'declare @thing int(在數據集的語句內部)'也會使它變得瘋狂。使用預定義的可編程對象或已創建的過程和功能。不要試圖在飛行中創建它們。

再加上想一想。每次調用數據集時,都無法每次創建該對象,因爲它已經存在。那麼你將不得不改變它,或者放下它,然後重新創建它。 SSMS已經爲你選擇了這一部分,並將它們存儲在數據庫中。 SSRS是SQL Server的附加組件,但不是用於創建對象的全部功能。特別是在飛行中。

+1

@ djangojazz ..我確實想過這個,我沒有權限在後端編寫存儲過程。我認爲SSRS可以動態地編寫存儲過程。謝謝澄清! – ShaunK

+0

沒問題。由於政策規定,我一直處於無法執行程序創作的職位。在這些情況下,我會將您需要的代碼編碼並提供給SQL Developer,DBA,管理員。 SSRS可以做得很好,除此之外它不能做太多。 – djangojazz

+0

另外,如果您沒有足夠的權限在SQL上創建對象,則無論如何您都無法從任何界面執行此操作。我同意@djangojazz,這個功能在管理員的服務器上完成得更好。 – Ron5504

1

不,您不能在RS中的查詢設計器中編寫「創建過程」或任何其他DDL語句。這是設計。

相關問題