O ile mi wiadomo, wstawianie zbiorcze nie może wstawić pustego ciągu, może zachować wartość null lub użyć wartości domyślnej z opcją keepnulls lub bez opcji keepnulls. Dla 3 przykładowych rekordów, po wstawieniu bazy danych, powinno wyglądać następująco:
| id | name | 1 | NULL | 1 | "" | 1 | ''
Powodem jest to, że wstawienie zbiorcze potraktuje pierwszy wiersz, drugą kolumnę jako wartość null; dla pozostałych 2 wierszy przyjmie wartość drugiej kolumny jako niepustą i przyjmie ją taką, jaka jest.
Zamiast zezwalać na wstawianie zbiorcze, aby wstawić pustą wartość ciągu, możesz pozwolić, aby kolumna tabeli miała wartość domyślną jako pusty ciąg.
Przykład:
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
Wynik będzie następujący:(Pierwszy wiersz w pliku CSV otrzyma pusty ciąg)
| id | name | 1 | | 1 | "" | 1 | ''