Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Masukkan string kosong di SQL Server dengan BULK INSERT

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     |  ''   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat pengguna di SQL-Server yang hanya memiliki akses ke satu tabel, dan hanya dapat menyisipkan baris?

  2. Bagaimana cara menggunakan spasi untuk mencari radius kode pos?

  3. SQL Server:Bagaimana cara menggunakan UNION dengan dua kueri yang KEDUAnya memiliki klausa WHERE?

  4. Bagaimana mengonversi kolom varchar ke kolom bit di SQL SERVER

  5. Bagaimana cara mengubah setiap kolom nvarchar menjadi varchar?