假設我有一個存儲過程,它返回一大組數據。我可以編寫另一個查詢來過濾存儲過程的結果嗎?我可以搜索存儲過程結果嗎?
例如:
select * from
EXEC xp_readerrorlog
where LogDate = '2011-02-15'
假設我有一個存儲過程,它返回一大組數據。我可以編寫另一個查詢來過濾存儲過程的結果嗎?我可以搜索存儲過程結果嗎?
例如:
select * from
EXEC xp_readerrorlog
where LogDate = '2011-02-15'
您需要先將存儲過程的結果插入表中,然後查詢這些結果。
create table #result (LogDate datetime, ProcessInfo varchar(20),Text text)
INSERT INTO #Result
EXEC xp_readerrorlog
SELECT *
FROM #Result
WHERE datepart(yy,LogDate) = '2012'
修復了你的代碼。 – 2012-02-21 14:05:55
請注意,如果SP使用臨時表,這可能不起作用。 – yucer 2014-11-10 10:38:13
你不能讓它查詢的一部分,但你可以得到的數據插入到一個臨時表或表變量,然後利用它來進行查詢。
您可以將輸出從sp複製到節奏表。
insert into #temp
EXEC xp_readerrorlog
,然後用其中具有臨時表條款
,或者你可以做一個表值函數
是否返回錯誤日誌只是一個整天做的結果更多有用?我認爲它仍然會充滿無用的條目。如果您正在查找特定事件,爲什麼不使用xp_readerrorlog的某個篩選器參數?以下內容將返回當前日誌中包含字符串'fail'的所有行:
EXEC xp_readerrorlog 0, 1, 'fail';
對,我只是舉了一個例子,我會在其他參數上搜索。您的查詢也會有幫助。 – 2012-02-21 14:03:14
可能出現[從存儲過程的結果集中選擇列](http://stackoverflow.com/questions/209383/ select-columns-from-result-set-of-stored-procedure) – 2012-02-21 13:39:39
我總是用google的網站:stackoverflow.com select + from + stored + procedure – 2012-02-21 14:51:35