Umgang mit datetime mit bcp und format datei

Ich verwende bcp, um eine Flat-file in eine SQL server 2005-database zu importieren.

Ich laufe in ein Problem mit datetime Felder.

Das Format der Formatdatei wird wie folgt angegeben:

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

Meine datadatei hat Termine wie folgt: 19820101

Allerdings sind einige (viele) mit 00000000 gefüllt

Die 00000000-data können aufgrund eines Typerrorss nicht korrekt importiert werden.

Gibt es eine Möglichkeit, meine Formatdatei anzugeben, um die ausgezahlten data zu behandeln? Oder ein path zu sagen, bcp, um einen Standard zu geben, wenn es über 00000000 kommt?

Ich würde vorschlagen, dass Sie eine temp-Tabelle erstellen, in der die datessäule als Varchar-datatyp angegeben ist. Dann BCP Ihre data auf die Temp-Tabelle. Nachdem die data in die Temp-Tabelle geladen wurden, können Sie das date scrub (zB 00000000 mit NULL replace). Schließlich, sobald Ihre data validiert sind, kopiere es in die realen Tabellen.

Dies kann nicht wirklich gut funktionieren für extrem große datadateien, aber ich bin mir nicht sicher, wie sonst Sie dies auch erreichen würde.

Ich würde OPENROWSET mit einer case-statement verwenden, um die Übersetzung beim Importieren der data durchzuführen .