Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL fügt keine Nullwerte mit BULK INSERT ein

Gemäß:

http://msdn.microsoft.com/en-us/library/ms187887 .aspx

Nullwerte können eingefügt werden, indem Sie ein leeres Feld in Ihrer Datei haben.

Beispieldatei war:

1,,DataField3
2,,DataField3

Eine Beispielmethode zum Importieren von Dateien, bei denen Nullen beibehalten werden, ist:

USE AdventureWorks;
GO
BULK INSERT MyTestDefaultCol2
FROM 'C:\MyTestEmptyField2-c.Dat'
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    KEEPNULLS
);
GO

Zugegeben, das bedeutet, dass Sie Ihre "NULL"s in "" ändern müssen und alle leeren Zeichenfolgen, die Sie als leere Zeichenfolge haben wollten, als Nullen interpretiert würden, aber es könnte ausreichen, um Ihnen den Einstieg zu erleichtern? Ich würde mir vorstellen, Ihre leeren Zeichenfolgenspalten beizubehalten, von denen sie geändert werden müssten

field1,,field2

zu

field1,"",field2

als Beispiel