2010-07-23 50 views
5

默認情況下,我可以將NOCOUNT設置爲關閉特定數據庫嗎?在數據庫級別設置NOCOUNT OFF?

我需要它NHibernate(如果它是ON,我收到異常時保存)。我可以看到整個服務器(設置爲ON)禁用它的設置,但我們與其他數據庫共享服務器。有沒有一種方法可以將其設置爲僅針對我的數據庫關閉?

或者是否有一個NHibernate的設置,將爲我做這個? (我現在用一個自定義的DriverConnectionProvider解決了這個問題,當它創建一個連接時發出命令。雖然工作正常,但感覺有點尷尬)

我使用的是SQL Server 2000,順便說一句。

感謝 馬特

回答

0

您可以使用NH IInterceptor接口的OnPrepareStatement的方法來修改NH-生成的SQL語句包含在你的應用程序發出的每一個SQL查詢的頂部「NOCOUNT掀起」語句。

Some bloke called Dave認爲這樣做是「惡」,但它可能是你的答案。該鏈接會將您帶到博客中描述如何實現它的頁面。

我對這樣做的保留意見是,您將創建一個依賴於您的應用程序運行的數據庫服務器,理解「set nocount off」 - 換句話說,你會忽略配置的方言。

-1

設置NOCOUNT設置爲數據庫級別。分別執行下面的查詢。這提供了更好的想法。

SET NOCOUNT ON 
Update Users set FirstName='XXXX' where Id='YYYY'; 

***指令(S)成功完成。

SET NOCOUNT OFF 
Update Users set FirstName='XXXX' where Id='YYYY'; 

***(1行(一個或多個)受影響)