BCP utilità corrotto dati
-
21-08-2019 - |
Domanda
Sono in esecuzione di una copia di massa di due colonne di una tabella da un server a un altro.
La tabella a lato sorgente ha circa 8 colonne, ma solo bisogno 2.
La tabella sul lato destinazione ha 2 colonne (il due che ho bisogno, entrambi sono di tipo int)
Entrambi i database sono SQL Server 2005.
Ecco le mie due comandi 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
Perché questo danneggiare i dati nella tabella di destinazione? Dovrei ottenere belle, interi sequenziali, invece ottengo questo:
c1 c2
586332 83014148
123128736 -105042384
-561616278 -309997736
Che cosa sto facendo di sbagliato?
Soluzione
Ci sono.
La definizione colonna deve corrispondere esattamente -. indicando se si tratta NULL o NOT NULL
La fonte aveva:
srcTable (
c1 int not null (PK)
c2 int null
c3 datetime not null
c4 datetime null
...
)
La tabella di destinazione ha avuto:
destTable (
c1 int not null (PK)
c2 int not null
)
Il NOT NULL sulla destTable.c2 era il bug.
E 'stato schiacciato ora.