数据库存储过程与VS通信小问题-SET NOCOUNT on/off

 今天有人问我他的VS中的程序连接到数据库的时候,插入数据到数据库明明已经成功了(数据表中有这条记录),但是返回给VS的程序总是-1,然后我看了他写的程序,知道他是用的存储过程进行插入操作的,然后他的存储过程的最前面的SET NOCOUNT ON 保存着,这个就是问题的原因。
  因为可能很多朋友写存储过程的时候不太注意上面的这个部分,所以下面就这个SET NOCOUNT ON/OFF的具体用法说一下。SET NOCOUNT 默认情况下= 就是你把这条语句删除的话 默认情况下是OFF的 SET NOCOUNT OFF就是调用这个存储过程会返回所影响的行数,如果是SET NOCOUNT ON的话 就不给返回影响的行数,也就是返回调用这个存储过程的默认值-1,所以上面这个问题就有两种解决方法1.直接把那个ON改成OFF;2.直接把这句语句删除; 这两种方法都能解决这个问题的。
   但是有朋友可能会问:那设置这个有什么意义呢? 这个主要是设成SET NOCOUNT ON的话,因为没有返回影响值, 如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。 所以如果你的存储过程是select 查询的话可以把它设置成SET NOCOUNT ON来提高运行速度。 不过现在这个计算机的运行速度已经很快了 内存一般至少都是2G的,所以这个速度基本上我们是没什么感觉的,这个建议如果这个不是很懂的朋友在学存储过程的时候就直接把那句话删除了,这样不管怎么样都不会出现这个问题的

转载于:https://www.cnblogs.com/longyuan123/archive/2013/04/22/8967607.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值