SqlTransaction多个命令:执行顺序?

SqlTransaction多个命令:执行顺序?,sql,ado.net,transactions,Sql,Ado.net,Transactions,我正在使用SqlTransaction对具有FK关系的多个表进行一系列更改。它首先通过ID删除记录,然后转移到foreach循环进行插入。如果删除没有“发生”,那么它当然会失败。我已经试过多次了,但仍然会出现这个错误 INSERT语句与外键约束冲突 “FK__xxxx_P_需求_3C69FB99”。数据库中发生冲突 “xxxxx”,表“dbo.xxxxx”,列“请求ID” 除非我遗漏了什么,否则这是因为插入是在删除之前尝试的。是否存在我不知道的执行顺序和顺序?外键冲突表示您正在将一行插入到缺少父

我正在使用
SqlTransaction
对具有FK关系的多个表进行一系列更改。它首先通过ID删除记录,然后转移到foreach循环进行插入。如果删除没有“发生”,那么它当然会失败。我已经试过多次了,但仍然会出现这个错误

INSERT语句与外键约束冲突 “FK__xxxx_P_需求_3C69FB99”。数据库中发生冲突 “xxxxx”,表“dbo.xxxxx”,列“请求ID”


除非我遗漏了什么,否则这是因为插入是在删除之前尝试的。是否存在我不知道的执行顺序和顺序?

外键冲突表示您正在将一行插入到缺少父表中相应行的子表中。也就是说,您需要首先在父级中插入一行


这与删除失败无关。

我曾经遇到过类似的问题。是否使用存储过程执行删除?如果是这样,请查看XACT_ABORT(这是一个SQL命令)。不幸的是,不是。这只是ADO,一些jquery$.ajax的东西。这是决定,SP将是更多的麻烦,这是值得的。这有帮助吗?:。我曾经遇到过一个问题,我会循环一些记录进行删除,每次删除后都会设置一个标志来表示删除成功。有时,在删除之前会设置该标志(即使随后删除失败)。因此,我留下了1000多个标志,表示删除成功,尽管只有99%被删除。是的,就是这样。让这个例子来说明最简单的事情是如何摆在你面前的。我使用了与删除相同的插入顺序,但忘记了反转插入顺序,duh。谢谢你,本。