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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top