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

BULK INSERT fra kommasepareret streng

Jeg er ikke sikker på, om der er nogen direkte måde at gøre det på i T-SQL, men hvis du vil bruge Bulk Insert, kan du bruge sqlcmd for at eksportere til CSV-fil og derefter importere filen tilbage til serveren ved hjælp af Bulk Insert.

Opret en dbo.Split Funktionm, du kan henvise her opdel streng i flere poster Der er tonsvis af gode eksempler.

hvis du vil udføre som batchproces, kan du udføre sqlcmd og 'Bulk Insert'

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'
)

Ellers kan du manipulere direkte i T-SQL, men forudsat at du har samme identifikation af kolonnedefinitioner.

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


  1. Trigger for at forhindre indsættelse for duplikerede data af to kolonner

  2. SQL Server:Hvordan kan jeg gruppere flere rækkeværdier i separate kolonner?

  3. Jeg får hele tiden fejl i min procedure, der hjælper med at tilføje nyt kursus, og jeg har sat krav i beskrivelsen

  4. ikke i stand til at installere mysql på ubuntu 11