我看了资料,现在明白了 SET NOCOUNT ON 语句的意思及意义。但是还有一点不清楚,请大家指点。SET NOCOUNT ON 该语句是执行了一次,数据库系统是否会保存该设置?也就是说我是只写这么一条语句,还是需要在每个存储过程的开始都写这条语句?如果系统会自动保存设置的话,那我在存储过程的开始写了 SET NOCOUNT ON 语句,是否应该在存储过程退出之前写上 SET NOCOUNT OFF 还原设置呢?另外如果写上 SET NOCOUNT ON 是否会有其它影响?如果没影响的话,那么就一直采用 SET NOCOUNT ON谢谢!

解决方案 »

  1.   

    除了上面的问题,我还想知道的就是何时需要写上:
    SET NOCOUNT OFF
      

  2.   

    都写上未必都一定正确,关键要清楚,何时需要写上set nocount off
      

  3.   

    ^^;什么要求精理论上不写也没有关系(并不会影响到其他函数的执行),但是MS产品的BUG出奇得多,就算是糊里糊涂吧,该写的都写上,不要懒
      

  4.   

    对客户端程序来说,写上SET NOCOUNT OFF没有任何作用SET NOCOUNT OFF只有在调试存储过程的有些时候有用
      

  5.   

    区别在于当前端应用程序调用该存储过程时,如果存储过程返回了影响行数信息,可能会导致程序把这些信息当做结果集来处理!这时前台应用程序会跳出一个对话框,显示影响行数信息。
    触发器影响多行时也是这样,对于在Sql中调试存储过程,不会出现这种情况
      

  6.   

    有这么种说法 当存储过程中dml语句很多的时候 set nocount on可以显著提高运行的效率.因为并不是所有语句都需要返回给客户程序一个影响的行数.