sql >> Databasteknik >  >> RDS >> Sqlserver

BULK INSERT från kommaavgränsad sträng

Jag är inte säker på om det finns något direkt sätt att göra i T-SQL, men om du vill använda Bulk Insert kan du använda sqlcmd för att exportera till CSV-fil och sedan importera filen tillbaka till servern med hjälp av Bulk Insert.

Skapa en dbo.Split Funktionm, du kan hänvisa här dela upp strängen i flera poster Det finns massor av goda exempel.

om du vill köra som batchprocess kan du köra sqlcmd och 'Massinfoga'

sqlcmd -S MyServer -d myDB -E -Q "select dbo.Split(col1) from SomeTable" 
       -o "MyData.csv" -h-1 -s"," -w 700

-s"," sets the column seperator to 

bulk insert destTable
from "MyData.csv"
with 
(
  FIELDTERMINATOR = ',',
  ROWTERMINATOR = '\n'
)

Annars kan du manipulera direkt i T-SQL, men förutsatt att du har samma identifiering av kolumndefinitioner.

 INSERT INTO DestinationTable
 SELECT dbo.Split(col1) FROM SomeTable


  1. Hur matchar jag två värden från 1 kolumn i MYSQL

  2. Hur kan jag göra mindre än, större än i JSON Postgres-fält?

  3. Betydelse av hakparenteser [] i MS-SQL tabelldesigner?

  4. För att köra en .sql-fil i MySQL