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

SQL nie wstawi wartości null za pomocą BULK INSERT

Według:

http://msdn.microsoft.com/en-us/library/ms187887 .aspx

wartości null można wstawić, umieszczając w pliku puste pole.

Przykładowy plik to:

1,,DataField3
2,,DataField3

Przykładowa metoda importowania pliku z zachowaniem wartości NULL to:

USE AdventureWorks;
GO
BULK INSERT MyTestDefaultCol2
FROM 'C:\MyTestEmptyField2-c.Dat'
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    KEEPNULLS
);
GO

Jasne, oznacza to, że będziesz musiał zmienić swoje "NULL" na "", a wszelkie puste ciągi, które chciałeś jako pusty, zostaną zinterpretowane jako puste, ale może to wystarczyć, aby zacząć? Wyobrażam sobie, aby zachować puste kolumny ciągów, z których musiałyby zostać zmienione

field1,,field2

do

field1,"",field2

jako przykład



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Serwer SQL 2008 - funkcje dostrajania wydajności do wstawiania dużej ilości danych

  2. jak sprawdzić, ile wierszy zostanie dotkniętych przed uruchomieniem zapytania w serwerze microsoft sql 2008

  3. Jak zastosować posiadanie klauzuli z grupą przez w Select Query — samouczek SQL Server / TSQL, część 131

  4. Skąd mam wiedzieć, kiedy zakończono wypełnianie indeksu pełnotekstowego SQL?

  5. Użycie klauzuli OUTPUT do wstawienia wartości spoza INSERTED