¿Cómo truncar automáticamente la cadena cuando se inserta a granel?

.net c# sqlbulkcopy sql-server

Pregunta

Quiero insertar muchas filas (construidas a partir de objetos de Entity Framework) en SQL Server. El problema es que algunas de las propiedades de cadena han excedido la longitud de la columna en la base de datos, lo que provoca una excepción, y luego todas las filas no podrán insertarse en la base de datos.

Entonces, me pregunto si hay una manera de decirle a SqlBulkCopy que trunque automáticamente las filas de longitud excesiva. Por supuesto, puedo verificar y subscribir cada propiedad si excede la longitud limitada, antes de insertarla en un DataTable, pero ralentizaría todo el programa.

Respuesta popular

Siempre use una tabla de carga / carga para acciones masivas.

Luego, puede procesar, limpiar, borrar, etc. los datos antes de vaciarlos en la tabla real. Esto incluye, IZQUIERDAS, búsquedas, desduplicaciones, etc.

Asi que:

  1. Cargar una tabla de ensayo con columnas anchas.
  2. INSERT realtable (..) SELECT LEFT(..), .. FROM Staging tabla de etapas a la tabla "real" utilizando INSERT realtable (..) SELECT LEFT(..), .. FROM Staging


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué