受這個問題對于設置NOCOUNT有不同的意見.。我們是否應該將SET NOCOUNT用于SQLServer?若否,原因為何?它所做的編輯6,2011年7月22日它會在任何DML之后取消“xx行受影響”消息。這是一個結果集,當發送時,客戶端必須處理它。它很小,但是可以測量(見下面的答案)對于觸發器等,客戶端將接收多個受影響的“xx行”,這會導致一些ORM、MS Access、JPA等方面的各種錯誤(參見下面的編輯)。背景:一般公認的最佳實踐(我認為在這個問題之前)是使用SET NOCOUNT ON在SQLServer中的觸發器和存儲過程中。我們在任何地方都使用它,一個快速的Google顯示了大量的SQLServerMVP也表示同意。MSDN說這會破壞.NET SQLDataAdapter.現在,這意味著SQLDataAdapter僅限于完全簡單的CRUD處理,因為它期望“n行受影響”消息匹配。所以,我不能用:如果存在以避免重復(沒有行影響消息)注:謹慎使用不存在的地方(比預期的行少)過濾掉瑣碎的更新(如沒有數據實際更改)之前是否進行任何表訪問(例如日志記錄)隱藏復雜性或非正態化等在問題中,MARC_s(誰知道他的SQL內容)說不要使用它。這與我所認為的不同(我也認為自己在SQL方面有一定的能力)。也許我遺漏了一些東西(隨便指出一些顯而易見的事情),但是你們認為呢?注意:由于現在不使用SQLDataAdapter,我已經多年沒有看到這個錯誤了。在評論和問題之后編輯:編輯:更多的想法.。我們有多個客戶端:一個可以使用C#SQLDataAdaptor,另一個可以使用Java的nHibernate??梢圆煌姆绞接绊戇@些SET NOCOUNT ON.如果您將存儲過程視為方法,那么假設某些內部處理為您自己的目的以某種方式工作是不好的形式(反模式)。編輯2:a觸發中斷nHibernate問題,在哪里SET NOCOUNT ON不能設置(不,這不是這,這個)編輯3:還有更多的信息,感謝我的MVP同事KB 240882,引發sql 2000及更早版本上的斷開連接的問題。性能增益演示編輯4:2011年5月13日未指定時也會中斷Linq 2 SQL?編輯5:14 2011年6月14日破壞JPA,用表變量存儲proc:JPA2.0支持SQLServer表變量嗎?編輯:2011年8月15日SSMS“編輯行”數據網格要求將NOCOUNT設置為:使用組更新觸發器編輯7:07 2013年3月詳情見@RemusRusanu:設置NOCOUNT真的能使性能有很大的不同嗎?根據使用情況設置NOCOUNT
根據使用情況設置NOCOUNT
ibeautiful
2019-06-26 15:30:01