sql >> Database >  >> RDS >> Sqlserver

BULK INSERT van door komma's gescheiden tekenreeks

Ik weet niet zeker of er een directe manier is om dit in de T-SQL te doen, maar als je Bulk Insert wilt gebruiken, kun je sqlcmd gebruiken om naar een CSV-bestand te exporteren en vervolgens het bestand weer in de server te importeren met behulp van Bulk Insert.

Maak een dbo.Split Functionm, u kunt hier verwijzen string splitsen in meerdere records Er zijn talloze goede voorbeelden.

als u als batchproces wilt uitvoeren, kunt u sqlcmd . uitvoeren en 'Bulk invoegen'

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

Anders kunt u rechtstreeks in de T-SQL manipuleren, maar aangezien u dezelfde definitie van kolommen hebt.

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


  1. Wanneer MongoDB of andere documentgeoriënteerde databasesystemen gebruiken?

  2. Wat is het equivalent van ST_DWithin (PostGIS - PostgreSQL) voor MySQL?

  3. Hoe Laravel order te schrijvenBy query?

  4. PDOStatement::nextRowSet() is verbroken in MySQL 5.6.16 op Windows