Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

WSTAWIENIE ZBIORCZE brakuje ostatniego wiersza?

Odtworzyłem Twój problem na SQL Server 2008 R2. Rozwiązanie jest tak proste, jak dodanie nowej linii do pliku, tak aby ostatni wiersz kończył się znakiem nowej linii.

Utworzyłem dwa pliki:

Następnie uruchom następujący skrypt:

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;

Wynik 1:

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

Wynik 2:

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

Rozwiązanie powinno być tak proste, jak upewnienie się, że ostatnia linia kończy się \r\n . Albo zmienisz proces, który generuje plik tekstowy, albo zrobisz to ręcznie tuż przed wstawieniem zbiorczym.

Jednym ze sposobów zrobienia tego ręcznie byłoby uruchomienie EXEC xp_cmdshell 'echo. >> C:\temp\without_newline.txt' tuż przed wykonaniem wstawiania zbiorczego.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować SQL Server na komputerze Mac

  2. opcjonalne parametry w SQL Server przechowywane proc?

  3. Szacowanie przyłączeń programu SQL Server przy użyciu zgrubnego wyrównania histogramu

  4. Jak edytować opcje serwera połączonego za pomocą T-SQL

  5. Wstaw nodejs mssql z parametrami