2013-05-17 71 views
2

我有一個插入和更新的插件。只有特定更新的數量需要返回。我嘗試過返回或選擇@@ ROWCOUNT,但是由於其他選擇在sproc中,它被掩埋並難以訪問。對於整個proc,NOCOUNT ON顯然會返回其他插入和更新的計數。我想知道我是否可以這樣做:SQL Server 2005中的SET NOCOUNT可以包含單個語句嗎?

SET NOCOUNT ON 
-- some inserts, selects, updates 
SET NOCOUNT OFF 
-- The update I care about 
SET NOCOUNT ON 

並只接收來自該更新的計數? 在此先感謝。

回答

2

爲什麼是的,是的,你可以。這正是SET NOCOUNT的用處。

(你有沒有嘗試這個在MS SQL Server Management Studio中,或測試環境?)

+0

我只是做了和它的作品我想它想的辦法,那就是它說:「( 1 row(s)affected)「而不是4.如果我在vb中執行NonQuery,你認爲我會看到1而不是4作爲返回值嗎? –

+0

我不這麼認爲,看着[ExecuteNonQuery的文檔](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx)我沒有看到它的任何理由。查詢在SQL服務器中運行,對於不同的訪問程序不應該有不同的行爲。 – DougM

0

當然可以。它應該沒有問題。 Here是MSDN文檔。

+0

謝謝。我在看這個,但我不確定它是否會給我想要的結果。 –

0

可以在變量保持結果@@ ROWCOUNT的也沒關係,其他選擇

-- some inserts, selects, updates 
-- The update I care about 
DECLARE @rowCount_updICareAbout INT 
SET @rowCount_updICareAbout = @@ROWCOUNT 
SELECT @rowCount_updICareAbout 
+0

我確實嘗試過,但是我無法讓我的代碼(vb)讀取select中的內容,而無法讀取它之前的其他程序。 –

相關問題