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