Voor zover ik weet, kan bulkinsertie geen lege tekenreeks invoegen, het kan de null-waarde behouden of de standaardwaarde gebruiken met de optie keepnulls of zonder de optie keepnulls. Voor uw 3 voorbeeldrecords, na het invoegen van de database, zou het als volgt moeten zijn:
| id | name | 1 | NULL | 1 | "" | 1 | ''
De reden is dat de bulk-insert uw eerste rij en tweede kolomwaarde als null zal behandelen; voor andere 2 rijen, zal de tweede kolomwaarde niet null zijn en deze nemen zoals deze is.
In plaats van Bulk invoegen toe te staan een lege tekenreekswaarde voor u in te voegen, kunt u uw tabelkolom met de standaardwaarde als lege tekenreeks laten invoegen.
Voorbeeld als volgt:
CREATE TABLE BulkInsertTest (id int, name varchar(10) DEFAULT '')
Bulk Insert same CSV file into table
BULK INSERT Adventure.dbo.BulkInsertTest
FROM '....\test.csv'
WITH
(
FIELDTERMINATOR ='\,',
ROWTERMINATOR ='\n'
)
SELECT * FROM BulkInsertTest
Het resultaat is als volgt:(De eerste rij in je CSV krijgt een lege string)
| id | name | 1 | | 1 | "" | 1 | ''