Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

BULK INSERT z ciągu oddzielonego przecinkami

Nie jestem pewien, czy istnieje jakikolwiek bezpośredni sposób na wykonanie w T-SQL , ale jeśli chcesz użyć Bulk Insert, możesz użyć sqlcmd aby wyeksportować do pliku CSV, a następnie zaimportować plik z powrotem na serwer za pomocą wstawiania zbiorczego.

Utwórz dbo.Split Functionm, możesz zapoznać się tutaj podziel ciąg na wiele rekordów Jest mnóstwo dobrych przykładów.

jeśli chcesz wykonać jako proces wsadowy, możesz wykonać sqlcmd i „Wstaw zbiorczo”

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

W przeciwnym razie możesz manipulować bezpośrednio w T-SQL, ale zakładając, że masz taką samą identyfikację definicji kolumn.

 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. Czy kolejność klauzul zapytań LINQ powinna wpływać na wydajność Entity Framework?

  2. SQLServer a StateServer dla wydajności stanu sesji ASP.NET

  3. Dlaczego [data] + ([godzina]-[przesunięcie]) nie jest deterministyczny w programie SQL Server 2008?

  4. Jak ustawić sortowanie dla połączenia w SQL Server?

  5. Jak uniknąć niepowodzenia zadania FTP SSIS, gdy nie ma plików do pobrania?