Pokud vím, hromadné vkládání nemůže vložit prázdný řetězec, může buď zachovat hodnotu null, nebo použít výchozí hodnotu s možností keepnulls nebo bez možnosti keepnulls. Pro vaše 3 ukázkové záznamy by po vložení databáze mělo být toto:
| id | name | 1 | NULL | 1 | "" | 1 | ''
Důvodem je, že hromadné vložení bude považovat hodnotu prvního řádku a druhého sloupce za hodnotu null; pro další 2 řádky bude mít hodnota druhého sloupce hodnotu nenulovou a bude ji brát tak, jak je.
Namísto hromadného vkládání, aby za vás vložil hodnotu prázdného řetězce, můžete nechat sloupec tabulky s výchozí hodnotou jako prázdný řetězec.
Příklad:
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
Výsledek bude následující:(První řádek ve vašem CSV bude mít prázdný řetězec)
| id | name | 1 | | 1 | "" | 1 | ''