sql >> Databasteknik >  >> RDS >> Sqlserver

Massinlägg med textkvalificerare i SQL Server

Du måste använda en "formatfil" för att implementera en textkvalificering för massinsättning. I grund och botten måste du lära insatsen att det potentiellt finns olika avgränsare i varje fält.

Skapa en textfil som heter "level_2.fmt" och spara den.

11.0
2
1   SQLCHAR   0  8000   "\","      1     wkt         SQL_Latin1_General_CP1_CI_AS
2   SQLCHAR   0  40   "\r\n"      2     area         SQL_Latin1_General_CP1_CI_AS

Den första raden, "11.0" refererar till din version av SQL. Den andra raden visar att din tabell, [level2_import], har två kolumner. Varje rad efter det kommer att beskriva en kolumn och följer följande format:

[Källkolumnnummer][DataTyp][Min storlek][Maxstorlek][Avgränsningsmönster][Destinationskolumnnummer][Destinationskolumnens namn][Kapitelkänslighet för databas]

När du har skapat den filen kan du läsa in dina data med följande bulkinsert-sats:

BULK INSERT level2_import
FROM 'D:\test.csv'
WITH 
(
  FIRSTROW = 2,
  FORMATFILE='D:\level_2.fmt'
);

Se den här bloggen för en detaljerad förklaring av formatfilen.



  1. Generera datum mellan datumintervall

  2. DATEDIFF() vs DATEDIFF_BIG() i SQL Server:Vad är skillnaden?

  3. Oracle - Vilken TNS Names-fil använder jag?

  4. Blockera, blockera, blockera på DBAs dörr med SQL Server-blockering