Доколкото знам, груповото вмъкване не може да вмъкне празен низ, може или да запази нулева стойност, или да използва стойност по подразбиране с опция keepnulls или без опция keepnulls. За вашите 3 примерни записа, след вмъкване на база данни, трябва да е като:
Причината е, че груповото вмъкване ще третира стойността на първия ви ред, втората колона като нула; за други 2 реда ще приеме стойността на втората колона като ненулева и ще я вземе такава, каквато е.
Вместо да позволите на Bulk Insert да вмъкне празна стойност на низ вместо вас, можете да позволите на колоната на таблицата да има стойност по подразбиране като празен низ.
Пример, както следва:
CREATE TABLE BulkInsertTest (id int, name varchar(10) DEFAULT '')
Групово вмъкване на същия CSV файл в таблицата
BULK INSERT Adventure.dbo.BulkInsertTest
FROM '....\test.csv'
WITH
(
FIELDTERMINATOR ='\,',
ROWTERMINATOR ='\n'
)
SELECT * FROM BulkInsertTest
Резултатът ще бъде като следния:(Първият ред във вашия CSV ще получи празен низ)
<преди> | ID | име | 1 | | 1 | "" | 1 | ''