sql >> Database teknologi >  >> RDS >> Sqlserver

Indsæt en tom streng på SQL Server med BULK INSERT

Så vidt jeg ved, kan bulk insert ikke indsætte tom streng, den kan enten beholde null-værdi eller bruge standardværdi med keepnulls-indstilling eller uden keepnulls-indstilling. For dine 3 eksempelposter, efter indsættelse af database, skulle det være sådan:

    | id    |  name 
    | 1     |  NULL 
    | 1     |  ""   
    | 1     |  ''   

Årsagen er, at bulkinsert vil behandle din første række, anden kolonne værdi som null; for andre 2 rækker, vil den anden kolonnes værdi som ikke null, og tage den som den er.

I stedet for at lade Bulk Insert indsætte tom strengværdi for dig, kan du lade dig tabelkolonne have standardværdien som tom streng.

Eksempel som følgende:


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

Resultatet bliver som følgende:(Den første række i din CSV vil få en tom streng)

    | id    |  name 
    | 1     |   
    | 1     |  ""   
    | 1     |  ''   


  1. doktrin 2:hvordan man konverterer en en-til-mange til en mange-til-mange uden at miste data

  2. GRANT-syntaks for domæne\bruger

  3. MySQL-sag i Select Statement med LIKE-operator

  4. Hvordan reparerer man wamp-serveren uden at geninstallere?