代码之家  ›  专栏  ›  技术社区  ›  citizenmatt

在数据库级别设置NOCOUNT?

  •  5
  • citizenmatt  · 技术社区  · 14 年前

    对于特定的数据库,我可以将NOCOUNT默认设置为OFF吗?

    我需要它为NHibernate(如果它是开的,我得到例外时保存)。我可以看到为整个服务器禁用它的设置(在服务器上设置),但是我们正在与其他数据库共享服务器。有没有一种方法我可以设置它关闭只是为了我的数据库?

    或者有一个NHibernate的设置可以为我做这个(我已经用一个自定义的DriverConnectionProvider解决了这个问题,它在创建连接时发出命令。工作正常,但感觉有点尴尬)

    顺便说一句,我用的是SQLServer2000。

    马特

    3 回复  |  直到 14 年前
        1
  •  2
  •   KM.    14 年前

    不,没有数据库范围的设置 SET NOCOUNT .

    同样的问题: http://www.eggheadcafe.com/software/aspnet/32120672/set-nocount.aspx

        2
  •  0
  •   Neil Moss    14 年前

    IInterceptor OnPrepareStatement 方法修改NH生成的SQL语句,使其在应用程序发出的每个SQL查询的顶部都包含一个“set nocount off”语句。

    Some bloke called Dave 认为这样做是“邪恶的”,但这可能是你的答案。这个链接会把你带到他博客上描述如何实现它的页面。

        3
  •  0
  •   Rajaram Shelar    4 年前

    您也可以从SSMS设置数据库的nocount属性ON/OFF。请在下面找到 enter image description here

    1. 右键单击实例并选择属性
    2. 然后选择连接
    3. 在右窗格中,您将找到包括“no count”在内的属性列表
    4. 取消选中此属性可使其关闭
        4
  •  -2
  •   Petter Friberg Onceler    8 年前

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

    ***命令已成功完成。

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