关于'键列信息不足或不正确,更新影响到多行'的问题

最近在使用Delphi开发中,发现一个小小的问题。那就是在执行删除的时候,提示“关于键列信息不足或不正确,更新影响到多行”。但是数据库的数据却正确的处理了。
后来网上查询了一点解决办法。结果全是一群庸人。相互抄袭转载。说什么导致该问题的原因是数据库表没有主键或者有重复的数据。向有过一定经验的程序员看来,数据库表在建立初期,必定首先建好主键---索引---标识列等。绝不可能犯此低级错误!
正确的解决方案是:查看你所要变更的表,查看其触发器。并在开始执行的语句前加上  set nocount on ,并在结尾写上 set nocount off


SET NOCOUNT ON 作用

在存储过程中,经常用到SET NOCOUNT ON. 指定的设置仅在执行或运行时候生效,分析时候不生效。
作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息。
当SET NOCOUNT ON  时,不返回计数,但更新@@RowCount,将不向客户端发送存储过程每个语句的DONE_IN_proc消息,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能;
当SET NOCOUNT OFF 时,返回计数;

猜你喜欢

转载自blog.csdn.net/aiib69/article/details/79806602