Question

Je dirigeais une copie en bloc de deux colonnes d'une table d'un serveur à un autre.

Le tableau du côté source a environ 8 colonnes, mais je ne ai besoin 2.

Le tableau sur le côté de destination dispose de 2 colonnes (les deux que j'ai besoin, les deux sont de type int)

Les deux bases de données sont SQL Server 2005.

Voici mes deux commandes 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

Pourquoi cette corruption les données dans la table de destination? Je devrais obtenir de belles, entiers séquentiels, au lieu que j'obtiens ceci:

c1          c2
586332      83014148
123128736   -105042384
-561616278  -309997736

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Got it.

La définition de la colonne doit correspondre exactement -. y compris si elle est NULL ou NOT NULL

La source avait:

srcTable (
c1 int not null (PK)
c2 int null
c3 datetime not null
c4 datetime null
...
)

Le tableau de destination avait:

destTable (
c1 int not null (PK)
c2 int not null 
)

Le NOT NULL sur destTable.c2 était le bogue.

Il a été écrasé maintenant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top