什么时候SQLServer 2005无法插入/更新,也不会“抛出”异常?

时间:2008-12-25 08:38:12

标签: .net sql-server-2005

在针对SQLServer 2005数据库运行插入或更新查询之后,在什么情况下(如果有的话)会发生这种情况 - SQLServer 2005不执行或无法执行插入/更新,也不会“删除”AN异常?

考虑我们通过SqlCommand对象运行插入或更新查询。还要考虑使用插入或更新查询的表具有

  • 身份字段
  • 非空的字段
  • 具有适当数据类型的字段
  • 作为参考键的字段
  • 已应用检查约束的字段

请假设在更新查询中,“WHERE”条件将找到需要更新的recrod。

我们可以假设在执行SqlCommand.ExecuteNonQuery()之后,如果没有执行插入或更新,那么会发生未处理的异常吗?否则,我们可以假设插入或更新查询已成功。

3 个答案:

答案 0 :(得分:0)

查看ExecuteNonQuery()的返回值以查看受影响的记录数。

答案 1 :(得分:0)

将逻辑移动到数据库存储过程并从那里抛出异常(RAISERROR)。然后你的命令(将调用相应的存储过程)将有必要的例外。

答案 2 :(得分:0)

您可以假设将抛出异常(SqlException),除非INSERT / UPDATE包含与任何行都不匹配的WHERE子句。