Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

CHÈN SỐ LƯỢNG LỚN từ chuỗi được phân tách bằng dấu phẩy

Tôi không chắc liệu có cách nào trực tiếp để thực hiện trong T-SQL hay không, nhưng nếu bạn muốn sử dụng Chèn hàng loạt, bạn có thể sử dụng sqlcmd để xuất sang tệp CSV và sau đó Nhập tệp trở lại máy chủ bằng Chèn hàng loạt.

Tạo một dbo.Split Hàm, bạn có thể tham khảo tại đây chia chuỗi thành nhiều bản ghi Có rất nhiều ví dụ điển hình.

nếu bạn muốn thực thi dưới dạng quy trình hàng loạt, Bạn có thể thực thi sqlcmd và 'Chèn hàng loạt'

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

Nếu không, Bạn có thể thao tác trực tiếp trong T-SQL, nhưng với điều kiện bạn có cùng nhận dạng về định nghĩa cột.

 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. Gặp sự cố với UTF-8 lưu trữ trong NVarChar trong SQL Server 2008

  2. Không có tập hợp sao lưu nào được chọn để khôi phục SQL Server 2012

  3. Thủ tục đã lưu trữ xuất dữ liệu thành tệp csv chỉ xuất sang một tệp

  4. ANSI_NULLS hoạt động như thế nào trong TSQL?

  5. Cú pháp không chính xác gần từ khóa 'với'.