2013-11-21 65 views
2

我需要從存儲過程的輸出中圍繞一個公用表表達式,顯然存儲過程不能直接從CTE中調用,所以我試圖找到解決方法。公用表表達式解決方案的存儲過程?

我一直在使用SELECT FROM OPENROWSET,最初看起來像它試圖解決的問題 - 但一些我需要調用包含sp_executesql命令的存儲過程,因此產生一個錯誤 -

元數據無法確定因爲過程'sp_CustomerAndWorkers'中的語句'EXEC sp_executesql @SQL'包含動態SQL。請考慮使用WITH RESULT SETS子句明確地描述結果集。」

我也看了OPENQUERY,但不允許包含參數。

是否有任何其他我能方法考慮將可能

在此先感謝

+0

我不會知道臨時表的列直到運行時,所以它需要自動填充,而不是創建然後填充。如何在不使用OPENROWSET的情況下自動填充它? – user1948635

回答

0

你有沒有考慮臨時表

例子:??

INSERT INTO #tempTable 
EXEC sp_executesql 
+0

直到運行時,我才知道臨時表的列,所以這不是一個選項。無論如何,謝謝 – user1948635

+1

@ user1948635 - 如果直到運行時纔會知道列,那麼您將繼續遇到障礙。使用CTE的查詢仍然必須具有一個「形狀」 - 一組固定的列,具有特定的名稱和類型。 –

+0

是的,你可能是對的,希望能夠將所有視圖/ proc調用包裝在一起,這樣我就可以應用一個安全模型,但我會尋找一種不同的方法。謝謝 – user1948635