Насколько я знаю, объемная вставка не может вставить пустую строку, она может либо сохранить значение null, либо использовать значение по умолчанию с опцией keepnulls или без опции keepnulls. Для ваших 3 образца записей, после того, как базы данных вставки, она должна быть как:
| id | name
| 1 | NULL
| 1 | ""
| 1 | ''
Причина, основная вставка будет рассматривать первую строку, второе значение столбца в нуль; для других 2 строк примет второе значение столбца как не равное нулю, и возьмет его как есть.
Вместо того, чтобы Bulk Insert вставлять для вас значение пустой строки, вы можете позволить столбцу таблицы, имеющему значение по умолчанию, как пустую строку.
Пример следующим образом:
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
Результат будет как следующее: (Первая строка в CSV получит пустую строку)
| id | name
| 1 |
| 1 | ""
| 1 | ''
Пожалуйста, поделитесь вашим код – 2013-03-23 01:26:46