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

BULK INSERT hilang baris terakhir?

Saya mereproduksi masalah Anda di SQL Server 2008 R2. Solusinya semudah menambahkan baris baru ke file Anda sehingga baris terakhir diakhiri dengan baris baru.

Saya membuat dua file:

Kemudian jalankan skrip berikut:

CREATE TABLE #t(first_name VARCHAR(128),last_name_etc VARCHAR(128),sex CHAR(1),test VARCHAR(128));

BULK INSERT #t
FROM 'C:\temp\without_newline.txt'
WITH (
    FIELDTERMINATOR='\t',
    ROWTERMINATOR='\n'
);

SELECT * FROM #t;

TRUNCATE TABLE #t;

BULK INSERT #t
FROM 'C:\temp\with_newline.txt'
WITH (
    FIELDTERMINATOR='\t',
    ROWTERMINATOR='\n'
);

SELECT * FROM #t;

DROP TABLE #t;

Hasil 1:

first_name  | last_name_etc     | sex | test
--------------------------------------------
Tom         | Jackson 2/28/1986 | M   | test

Hasil 2:

first_name  | last_name_etc     | sex | test
--------------------------------------------
Tom         | Jackson 2/28/1986 | M   | test
Mike        | Johnson 1/29/1987 | M   | NULL

Solusinya harus sesederhana memastikan baris terakhir diakhiri dengan \r\n . Entah Anda mengubah proses yang menghasilkan file teks atau melakukannya secara manual tepat sebelum Anda melakukan penyisipan massal.

Salah satu cara untuk melakukannya secara manual adalah dengan menjalankan EXEC xp_cmdshell 'echo. >> C:\temp\without_newline.txt' tepat sebelum Anda melakukan penyisipan massal.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan Excel VBA untuk menjalankan kueri SQL

  2. T-SQL - Aliasing menggunakan =versus as

  3. Jenis kompleks string bidang - angka - string

  4. Pos Pemeriksaan Basis Data di SQL Server

  5. SQL Server - kurangnya GABUNG ALAMI / x GABUNG y MENGGUNAKAN (bidang)