Frage

Ich bin eine Massenkopie von zwei Spalten einer Tabelle von einem Server zum anderen ausgeführt wird.

Die Tabelle auf der Quellenseite hat etwa 8 Spalten, aber ich brauche nur 2.

Die Tabelle auf der Zielseite hat zwei Spalten (die beide, die ich brauche, beide sind vom Typ int)

Beide Datenbanken sind SQL Server 2005.

Hier sind meine zwei bcp Befehle:

c:\> bcp "select c1, c2 from srcTable" queryout tableData.bcp -N -T -S srcServer
c:\> bcp destTable in tableData.bcp -N -T -S destServer

Warum funktioniert die korrupten die Daten in der Zieltabelle? Ich soll schön, sequentielle Zahlen bekommen, ich diese stattdessen bekommen:

c1          c2
586332      83014148
123128736   -105042384
-561616278  -309997736

Was mache ich falsch?

War es hilfreich?

Lösung

Haben Sie es.

Die Spaltendefinition muß genau übereinstimmen -. einschließlich, ob es NULL oder NOT NULL

Die Quelle hatte:

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

Die Zieltabelle hatte:

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

Das NOT NULL auf destTable.c2 war der Fehler.

Es ist nun zerquetscht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top