zoukankan      html  css  js  c++  java
  • error:512 severity:16 state:1 触发器 错误总结

      SQL SERVER数据库问题,错误描述:Subquery returned more than 1 value. This is illegal when the subquery follows =, !=, <, <= , >, >=, or when the subquery is used as an expression.子查询返回的值多于一个,在用一些操作符或用做表达式时是不允许的。

    错误很明显,无非就是把操作符换成 in 就解决问题。

    理论上是这样,但现实是残酷的,依然不行,这就郁闷了,找了半天,SQL事件探查器搞了半天,也用上,确实是发生在删除时触发器上出的错,不应该啊,最后找到执行出错的sql语句,在查询分析器中执行,终于找到了真凶。。。。。

    是触发器的问题,这个触发器执行时又触发了另一个触发器,错误根源在这,改成in解决。

    但是还有个问题,如我在删除用户时,触发器执行删除所有物品,delete product where pid = (select userid from deleted),子查询返回肯定是唯一的啊;而在物品删除中,触发删除所有物品的留言,delete 物品留言表 where id = (select pid from deleted) ,也是唯一的。按理说,删除一个用户,触发器中获取它的id,根据这个id删除它的所有物品,这样删除一个物品时,再由物品id删除留言,都应该是正常的啊。

    但是它却不正常,估计是我们删除一个用户时,连带删除这个用户的多个物品这个操作时,是删除的所有的物品,填充了deleted表之后,才触发触发器,而不是删除一个物品,填充一次deleted表,触发一次。这样才造成删除物品留言时的error:512错误。。。。。。。

    清静多了。。。。。。。。

     

     

  • 相关阅读:
    QR码与DM码的对比
    JBPM在Eclipse中运行时页面错误ProcessEngine cannot be resolved to a type
    C. A Mist of Florescence
    B. A Tide of Riverscape
    A. A Blend of Springtime
    A. Gennady the Dentist
    D. Lizard Era: Beginning
    E. Jzzhu and Apples
    D. Jzzhu and Cities
    C. Jzzhu and Chocolate
  • 原文地址:https://www.cnblogs.com/forcertain/p/1635843.html
Copyright © 2011-2022 走看看