sql >> Databasteknik >  >> RDS >> Sqlserver

SQL kommer inte att infoga null-värden med BULK INSERT

Enligt:​​

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

null-värden kan infogas genom att ha ett tomt fält i din fil.

Exempelfilen var:

1,,DataField3
2,,DataField3

Exempel på metod för att importera fil som behåller nollvärden är:

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

Visst, detta betyder att du måste ändra dina "NULL" till "", och alla tomma strängar som du ville ha som tomma strängar skulle tolkas som nollor, men det kanske räcker för att komma igång? Jag skulle kunna tänka mig att behålla dina tomma strängkolumner som de skulle behöva ändras från

field1,,field2

till

field1,"",field2

som exempel



  1. Åtgärda "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning på rad 1" när du infogar data i MySQL

  2. MySQL-serverstartfel "Servern avslutades utan att uppdatera PID-filen"

  3. MySQL:infoga värden från en annan tabell i en kolumn

  4. SQLite UNION-operatör