BCP corrompe los datos de servicios públicos
-
21-08-2019 - |
Pregunta
Me postulo una copia masiva de dos columnas de una tabla desde un servidor a otro.
La mesa en el lado fuente tiene cerca de 8 columnas, pero sólo necesita 2.
La tabla en el lado de destino tiene 2 columnas (los dos que necesito, ambos son de tipo int)
Las dos bases de datos son de SQL Server 2005.
Aquí están mis dos comandos BCP:
c:\> bcp "select c1, c2 from srcTable" queryout tableData.bcp -N -T -S srcServer
c:\> bcp destTable in tableData.bcp -N -T -S destServer
¿Por qué este corromper los datos en la tabla de destino? Que debería llegar agradables, en números enteros consecutivos, en vez me sale esto:
c1 c2
586332 83014148
123128736 -105042384
-561616278 -309997736
¿Qué estoy haciendo mal?
Solución
Lo tengo.
La definición de columna debe coincidir exactamente con -. incluyendo si es NULL o NOT NULL
La fuente tenía:
srcTable (
c1 int not null (PK)
c2 int null
c3 datetime not null
c4 datetime null
...
)
La tabla de destino tenía:
destTable (
c1 int not null (PK)
c2 int not null
)
El NOT NULL en destTable.c2 fue el error.
Se ha aplastado ahora.