我在存储过程的前面部分加上SET NOCOUNT ON后,结尾部分是否需要加入SET ONCOUNT OFF?它们是否需要成对出现?如果不成对出现,是否会影响其它查询语句?SET NOCOUNT ON的作用范围持续时间有多大多长?
如:
CREATE PROCEDURE hello
AS
BEGIN
SET NOCOUNT ON
...
SET NOCOUNT OFF--此处是否需要加入该句?加不加有无区别?对其它查询有何影响?
END

解决方案 »

  1.   

    SET NOCOUNT ON只影响你这个进程,不会影响其他进程的查询尽量成对吧,虽然影响不大,也就是你后边的查询不会显示影响X行
      

  2.   

    SET NOCOUNT ON 
    SET NOCOUNT OFF
    要养成良好的编程习惯
      

  3.   

    楼主朋友,SET NOCOUNT OFF 这个指令是一个默认指令,在一个存储过程开始时,如果不指定他的值,默认就是关闭OFF状态。
    如果你在这个存储过程中将他置成ON了,那么在这个存储过程作用完毕后,这个也会自动的变为OFF的。它只影响当前批处理。所以可以放心的使用。但是将状态打开后再显示关闭时一个习惯。尽量养成这个习惯吧。
      

  4.   

    谢谢各位的解释,根据各位的说法做了测试,在存储过程内set nocount on影响本存储过程,存储过程之外的不受影响,在存储过程外set oncount on则影响当前会话窗口的所有查询,关闭当前会话窗口后恢复为默认的off状态