2013-10-30 15 views
7

Tôi muốn chèn hàng loạt cột của tệp csv vào các cột cụ thể của bảng đích. Mô tả - bảng đích có nhiều cột hơn tệp csv của tôi. Vì vậy, tôi muốn các cột tập tin csv để đi đến các cột mục tiêu bên phải bằng cách sử dụng BULK INSERT.BULK INSERT vào các cột cụ thể?

Điều này có khả thi không? Nếu có, thì làm cách nào để làm điều đó?

tôi thấy các hướng dẫn và mã tại - http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

http://www.codeproject.com/Articles/439843/Handling-BULK-Data-insert-from-CSV-to-SQL-Server

BULK INSERT dbo.TableForBulkData 
FROM 'C:\BulkDataFile.csv' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 

Họ không chỉ cho bạn cách bạn có thể kiểm soát, nơi dữ liệu được chèn vào.

+0

Các câu hỏi yêu cầu mã phải thể hiện sự hiểu biết tối thiểu về sự cố đang được giải quyết. Bao gồm ** các giải pháp đã thử **, ** lý do tại sao chúng không hoạt động ** và kết quả mong đợi. – showdev

+0

Bạn có ý gì khi chèn cột? bạn không muốn tất cả dữ liệu? Bạn nên thể hiện những gì bạn có và chính xác bạn muốn làm gì với nó. –

+0

Bạn sẽ cần sử dụng Định dạng tệp. –

Trả lời

8

Có, bạn có thể thực hiện việc này. Cách đơn giản nhất là chỉ cần tạo Chế độ xem mà Select s từ bảng mục tiêu, liệt kê các cột mà bạn muốn dữ liệu đi đến, theo thứ tự chúng xuất hiện trong tệp nguồn. Sau đó, BULK INSERT vào Chế độ xem của bạn thay vì trực tiếp vào Bảng.

+0

Wow! Cái này hoạt động ra sao ? Liệu nó có thực sự chuyển dữ liệu từ tệp csv của tôi sang bảng thực nếu tôi thay thế mytable bằng myview trong mã trên không? – Steam

+0

Yup. Nó sẽ thực sự. – RBarryYoung

+0

Cảm ơn. Sau khi khám phá tất cả các tùy chọn, tôi thất vọng. Tôi đang đi với C# và một chút của ssis. Tôi đang chuyển sang câu lệnh SQL thay vì tệp csv. Cảm ơn đã cho tôi thấy cách thay thế này. Tĩnh của nó, nhưng tốt để biết. – Steam

Các vấn đề liên quan