Tôi thực sự muốn một số lời khuyên ở đây, để cung cấp một số thông tin cơ bản tôi đang làm việc với chèn các bản ghi Theo dõi thư từ Exchange 2007 vào SQL. Khi chúng tôi có hàng triệu hàng triệu hàng mỗi ngày, tôi đang sử dụng lệnh Chèn hàng loạt để chèn dữ liệu vào bảng SQL. Trong thực tế, tôi thực sự số lượng lớn chèn vào một bảng tạm thời và sau đó từ đó tôi MERGE dữ liệu vào bảng sống, điều này là cho các vấn đề phân tích thử nghiệm như một số lĩnh vực khác có dấu ngoặc kép và như vậy xung quanh các giá trị.Tách các giá trị phân tách trong một cột SQL thành nhiều hàng
Điều này hoạt động tốt, ngoại trừ thực tế là cột địa chỉ người nhận là một trường được phân tách bởi một; và đôi khi nó có thể cực kỳ dài vì có thể có nhiều người nhận email.
Tôi muốn lấy cột này và chia các giá trị thành nhiều hàng mà sau đó sẽ được chèn vào một bảng khác. Vấn đề là bất cứ điều gì tôi đang cố gắng là mất quá nhiều thời gian hoặc không hoạt động theo cách tôi muốn.
Hãy ví dụ này dữ liệu:
message-id recipient-address
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected];[email protected];[email protected]
Tôi muốn này phải được định dạng như sau trong bảng nhận của tôi:
message-id recipient-address
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
Có ai có bất kỳ ý tưởng về làm thế nào tôi có thể đi về việc này ?
Tôi biết PowerShell khá tốt, vì vậy tôi đã thử trong đó, nhưng vòng lặp foreach ngay cả trên hồ sơ 28K mất mãi mãi để xử lý, tôi cần thứ gì đó sẽ chạy nhanh nhất/hiệu quả nhất có thể.
Cảm ơn!
Tôi nghĩ bạn nên đưa bạn ba kết quả trong một bảng bằng cách sử dụng chức năng chia tách Xem xét điều này: http: // stackoverflow.com/questions/314824/t-sql-đối diện-nối-chuỗi-nối-cách-chia-chuỗi-thành-nhiều-reco Và sau đó bạn có thể quản lý để kết hợp dữ liệu phân tách của bạn với bạn bảng khác để có được kết quả của bạn – GregM