Domanda

sto usando BCP per importare un file flat in un database SQL Server 2005.

Io corro in un problema con campi datetime.

Il mio campo file di formato è specificato come:

<COLUMN SOURCE="15" NAME="DATEOFSERVICE" xsi:type="SQLDATETIME"/>

Il mio file di dati è formattato come date: 19820101

Tuttavia, alcuni (molti) sono riempiti con 00000000

I 00000000 date non riescono a importare correttamente a causa di una mancata corrispondenza del tipo.

C'è un modo per specificare il formato di file per gestire le date azzerato? O un modo per dire BCP per entrare in un default se si incontra 00000000?

È stato utile?

Soluzione

Vorrei suggerire che si crea una tabella temporanea in cui la colonna della data è specificato come un tipo di dati varchar. Poi, BCP i dati alla tabella temporanea. Dopo che i dati vengono caricati per la tabella temporanea, si può fregare la data (sostituendo 00000000 con NULL, per esempio). Infine, una volta i dati viene convalidato, copiarlo ai tavoli reali.

Questo potrebbe non funzionare bene reale per estremamente grandi file di dati, ma non sono sicuro di come il resto ci si raggiungere questo obiettivo sia.

Altri suggerimenti

OPENROWSET con un'istruzione case per fare il traduzione durante l'importazione dei dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top