BCP-Dienstprogramm korrumpiert Daten
-
21-08-2019 - |
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?
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.