如何验证批量插入数据

时间:2011-03-04 07:24:12

标签: c# asp.net sql

假设我使用从asp.net到sol 2008的批量插入将数据插入数据库。现在我想验证数据我该怎么做。请帮助

2 个答案:

答案 0 :(得分:0)

我总是批量插入到临时表(最终主页的表代表性,但未被事务系统使用)。

此:

  • 允许我通过TSQL验证(包括检查其他表中的任何相关数据等)
  • 确保最终INSERT(进入真实表格)完全记录(批量插入不是必需的)
  • 确保无人读取未完成/未经验证的数据
  • 防止任何块等(进出实时系统)
  • 如果插入失败中途,
  • 可以隔离问题

在你的情况下,第一颗子弹是最重要的,但所有其他子弹也很重要。

此外,由于数据来自.NET,因此如果确实是批量插入,请确保使用SqlBulkCopy

答案 1 :(得分:0)

在大多数情况下,您的临时表的设计应该是这样的,它不允许空值不应该存在,并且字段的数据类型应该是您期望的类型。所以说一个字段是一个日期时间,那么你将无法插入任何数据,期望数据是一个日期时间类型。类似地,如果字段被定义为int,则数据不能是字符串类型等。

通过为字段定义正确的数据类型,尽可能尝试使用数据库的功能/功能。如果需要进行任何其他验证,那么您可以运行一些存储过程,在导入完成后执行其他验证。

此外,目标表上的触发器也有助于确保有效数据。

对于“数据已存在”,具体取决于您要执行的操作,可以使用MERGE语句将数据插入目标。 MERGE语句将允许您忽略重复项或更新它们(可能某些字段的值已更改,您需要更新新值)。