Sejauh yang saya tahu, penyisipan massal tidak dapat memasukkan string kosong, itu dapat menyimpan nilai nol atau menggunakan nilai default dengan opsi keepnulls atau tanpa opsi keepnulls. Untuk 3 catatan sampel Anda, setelah memasukkan database, seharusnya seperti:
| id | name | 1 | NULL | 1 | "" | 1 | ''
Alasannya adalah, sisipan massal akan memperlakukan baris pertama Anda, nilai kolom kedua sebagai null; untuk 2 baris lainnya, akan mengambil nilai kolom kedua sebagai bukan nol, dan menganggapnya apa adanya.
Alih-alih membiarkan Sisipkan Massal untuk memasukkan nilai string kosong untuk Anda, Anda dapat membiarkan kolom tabel Anda memiliki nilai default sebagai string kosong.
Contoh sebagai berikut:
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
Hasilnya akan seperti berikut:(Baris pertama di CSV Anda akan mendapatkan string kosong)
| id | name | 1 | | 1 | "" | 1 | ''