使用SQL语句进行数据集成,与游标/触发器相对

时间:2015-09-04 21:43:55

标签: sql-server error-handling cursor data-integration

我正在将我的.NET / SQL应用程序与其他两个产品集成。在阅读/体验了游标和触发器的性能和其他问题后,我决定使用批处理方法使用一系列SQL插入和更新语句。在某些地方,我需要从传入的Feed中查找映射ID,并映射到系统中的ID。我还需要在我的sql批处理代码中进行大量的错误处理,例如,如果缺少相关的ID或NULL,我将其写入错误日志而根本不处理该记录。我认为系统将处理大量初始批量数百/数千条记录,一旦投入生产,我们将按小时读取传入的数据。到目前为止一切都很好。

问题是我无法预先确定可能导致传入Feed的每个错误。经过几天的测试后,我仍然看到一些或另一个失败,批处理没有处理。当批处理或基于集合的集成(而不是游标/触发器)中发生错误时,我无法确定语句失败的记录。我可以弄清楚我的批处理中的哪个SQL语句失败但不确定哪一行。

然而,如果我使用了游标,我会知道,因为游标会处理哪些精确记录遭到轰炸并将其收集到错误日志中。在某些情况下,游标是否有用是不是这个原因?

此外,有没有办法使用我当前基于集合的批处理方法,我可以确定哪一行插入/更新失败并让其继续进行剩余的处理?

感谢。

0 个答案:

没有答案