問題背景:我用2008年的VisualStudio和類型化數據集,它提供一種「輕鬆」獲得executescalar()
執行標返回第一recorset(最後一部分的第一行的第一個字段的值,而經常忽略)如何防止存儲過程返回中間記錄集?
這種行爲的問題是最經常要進行一些其他要求你計算值前與最終select @returnValue
語句返回。
所以我的問題是,一般來說,如何防止SP返回中間記錄集? (我試過SET FMTONLY ON/OFF,但有不必要的副作用行爲)
另一個相關的問題是:你怎麼阻止T-SQL UPDATE語句從返回更新的行?有時你使用更新來簡單地更新...
謝謝!
樣本:
BEGIN
SET NOCOUNT ON;
declare @c int
select @c=(select count(*) from work where ...)
select @c -- so ExecuteScalar() works
update sousblocs set myfield = @c
where ...
select @c --after the update, won't be seen by ExecuteScalar()
return @c --useless for ExecuteScalar
END
這是我的問題,它可以與第一個 「選擇@c」 來解決;但我不知道你是否可以禁用recorset輸出....
「你想提出一些其他請求」 - 請向我們展示一些示例代碼,以說明你在這裏的意思 – AakashM 2010-12-10 14:13:50
我的意思是,例如,你計算一個存儲更新的值,而你想要返回該值。在這種情況下,更新將成爲第一個要返回的記錄集 – oldbrazil 2010-12-10 14:20:51