0

我用 C# 编写了一个程序来从表中读取数据,对其进行转换并将其写入其他四个表。

其中三个目标表具有指向最后一个目标表上的主键的非空整数。我称之为V。

当我的程序将一大块数据读取到内存并对其进行转换后,它将使用 SqlBulkCopy 写入表 V。完成后,它将使用选择语句来检索主键。

这些主键将正确分配给内存中的其他三个目标表。最后,最后三个表将在一个事务中使用 SqlBulkCopy 写入数据库。

但是,如果程序成功写入表V,但未能写入其他三个表,我有一堆脏数据。

我可以在围绕所有代码的事务中以某种方式将进入表 V 的数据与其主键映射吗?

对于解决我的问题的任何建议,我将由衷地高兴。

4

1 回答 1

0

在三个表的列上放置一个外键,这些列引用表 V 上的主键。这将确保没有脏数据。您可能需要重新编写逻辑和表的写入顺序,但添加外键应该会清理该过程并使其在重构后工作更顺畅。

于 2013-06-04T14:20:19.320 回答