Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

BULK INSERT от низ, разделен със запетая

Не съм сигурен дали има някакъв директен начин за това в T-SQL, но ако искате да използвате Bulk Insert, можете да използвате sqlcmd за експортиране в CSV файл и след това импортиране на файла обратно в сървъра чрез групово вмъкване.

Създайте dbo.Split Functionm, можете да се обърнете тук разделяне на низ на множество записи Има много добри примери.

ако искате да изпълните като пакетен процес, можете да изпълните sqlcmd и „Групово вмъкване“

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

В противен случай можете да манипулирате директно в T-SQL, но като имате същата идентификация на дефиницията на колони.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Моментни снимки на базата данни на SQL Server -1

  2. Не може да се прекрати извършеното връщане на SPID транзакция

  3. Как работи функцията PATINDEX() в SQL Server (T-SQL)

  4. Изберете стойности от полето XML в SQL Server 2008

  5. Как да настроите съпоставянето на колона в SQL Server (T-SQL)