Sql server 2008 r2 需要大容量插入提示吗

Sql server 2008 r2 需要大容量插入提示吗,sql-server-2008-r2,bulkinsert,Sql Server 2008 R2,Bulkinsert,我需要将一个表数据插入另一个表。无法保证源表中的所有行都正确,其中一些非空字段具有空值。因此,对于这个源表,我需要在表中输入所有有效行,并查找所有未能插入并返回它们的未验证行 我知道我们可以通过事先验证所有行来做到这一点。但由于这是csv的大容量插入,并由.net代码解析,因此从db我们不会验证它,而是直接输入 我们也可以通过运行循环来实现这一点,但性能可能会受到影响 所以我的问题是,我们可以使用一条语句来插入和跳过有问题的行,以及插入有效的行。批量插入是全部还是全部。遗憾的是,SQL Serv

我需要将一个表数据插入另一个表。无法保证源表中的所有行都正确,其中一些非空字段具有空值。因此,对于这个源表,我需要在表中输入所有有效行,并查找所有未能插入并返回它们的未验证行

我知道我们可以通过事先验证所有行来做到这一点。但由于这是csv的大容量插入,并由.net代码解析,因此从db我们不会验证它,而是直接输入

我们也可以通过运行循环来实现这一点,但性能可能会受到影响


所以我的问题是,我们可以使用一条语句来插入和跳过有问题的行,以及插入有效的行。

批量插入是全部还是全部。遗憾的是,SQL Server无法将错误行分流到单独的表中

您可以做的最好的事情是在插入数据之前彻底验证所有数据。如果插入仍然失败(可能是由于错误),则需要逐个重试所有行并记录发生的错误


您还可以批量插入临时表,并将其中的行逐个移动到最终表。

插入.NET代码之前,您不能验证数据吗?是的,他们已经在验证数据了。但在批量插入错误行之后,仍然希望返回错误行(如果有)。