批量插入时如何自动截断字符串?

.net c# sqlbulkcopy sql-server

我想在SQL Server中插入许多行(从Entity Framework对象构造)。问题是,某些字符串属性的长度超出了数据库中列的长度,这会导致异常,然后所有行都无法插入到数据库中。

所以我想知道如果有办法告诉SqlBulkCopy自动截断任何超长行?当然,在将每个属性超出有限长度之前,我可以检查并对其进行子串,然后将其插入到DataTable中,但这会降低整个程序的速度。

热门答案

始终使用暂存/加载表进行批量操作。

然后,您可以在刷新到真实表之前处理,清理,擦除等数据。这包括LEFT,查找,重复数据删除等

所以:

  1. 加载具有列的临时表
  2. 使用INSERT realtable (..) SELECT LEFT(..), .. FROM Staging从登台刷新到“真实”表



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因