的結果我有一個現有的SQL 2005的存儲過程,由於某種原因,輸出在SSMS代替結果窗格中的消息窗格中的結果。 (它實際上是一個已經編譯並部署到我們所有服務器的CLR程序,並且用於另一個日常程序,所以我不能改變它,我只是想使用它的輸出)。一個存儲過程,其行爲以同樣的方式:使用SQL「消息」窗格
CREATE PROCEDURE [dbo].[OutputTest]
@Param1 int, @Param2 varchar(100)
AS
BEGIN
SET NOCOUNT ON;
PRINT 'C,10000,15000';
PRINT 'D,30000,90000';
PRINT 'E,500,50000';
END
所以沒有實際選擇聲明在那裏,如果你運行它,你會看到只有在信息窗格中的所有結果。
有沒有什麼辦法讓我使用這些結果作爲更大查詢的一部分?把他們放在一個臨時表或其他東西,所以我可以解析出來?
無的「正常的東西」的作品,因爲沒有真正的「輸出」在這裏:
INSERT INTO #output
EXEC OutputTest 100, 'bob'
只是表明
C,10000,15000
D,30000,90000
E,500,50000
(0 row(s) affected)
上的消息窗格
,並臨時表沒有按」實際上可以得到任何東西。
也許是正確的,但是如果它*可能,這個技術還有其他應用,比如在調整查詢時解析出現在消息窗格上的「SET STATISTICS IO ON」的結果。 – BradC 2009-07-28 16:57:25
這是一個有趣的觀點,但我認爲解析是由客戶端應用程序完成的,而不是由sql服務器完成的。是否有可能無法掌握CLR過程,解決問題並向服務器發佈第二個版本,以便不影響該過程的現有消費者? – 2009-07-28 17:14:21