问题描述
||
我写了一个查询,它是一个复合查询,例如一个更新查询和一个插入查询。
我正在使用ExecuteScalar。
是否有可能一个查询失败而其他查询成功。
如果其中一个查询错误,则将是全部失败或部分失败。
有人可以帮忙吗:)
解决方法
无论您如何调用它;对于复合操作,完全有可能第一个操作将成功而第二个操作将失败(例如,唯一键冲突或外键冲突)。如果您需要确保全有或全无,则将对surround0ѭ的调用包含在事务中,并且仅在知道所有方法都起作用时才提交。
您也可以在SQL级别上创建事务,但是如果您在TSQL中进行操作,则很容易出错。为了得到应有的信誉,它确实避免了几次往返-但通常不会那么多,以至于值得为此而奋斗的语言。最终,SQL是为基于良好的集合的DML操作而设计的-它不像执行流管理那样具有更多过程代码。
, 是的,您的一个查询可能失败而其他查询可能会执行。以及为什么不使用ExecuteNonQuery而不是ExecuteScalar。对于此类情况,最好使用“事务”