2009-07-14 39 views
5

Tôi có bảng sản phẩm trong máy chủ sql 2005 cần được cập nhật bởi một số trường nhất định trong tệp csv. Cả hai tệp đều có một số phần của nhà cung cấp có thể được liên kết đến nơi tôi có thể cập nhật trường products.discontined với trường khác trong tệp csv.tsql: cách tốt nhất để cập nhật bảng db bằng tệp csv

Câu hỏi của tôi là cách tốt nhất để tiếp cận điều này là gì?

Tôi đã cân nhắc việc tạo kết nối odbc cho tệp excel và tìm hiểu cách hợp nhất cập nhật 2 cột. Nhập toàn bộ tệp csv (~ 60 MB) vào bảng tạm thời trong máy chủ sql và sau đó viết một thủ tục tsql để tìm kiếm, so sánh, cập nhật? Cũng làm và lệnh opensource từ phân tích truy vấn và viết một thủ tục để đọc trong file csv và cập nhật bảng theo cách đó ..

cảm ơn trước

+1

Đây có phải là bản cập nhật liên tục hoặc hoạt động một lần không? Điều đó sẽ giúp xác định con đường tốt nhất để thực hiện. –

+1

Ngoài ra, CSV có còn sạch không? Báo giá IE đã thoát và tương tự? –

+0

Xin lưu ý: thẻ 'sqlserver' gần đây không được dùng để ủng hộ 'sql-server'. –

Trả lời

3

Nếu nó có sẵn cho bạn, đặt cược tốt nhất của bạn với SQL Server 2005 là Dịch vụ Tích hợp Máy chủ SQL (trước đây là Dịch vụ Chuyển đổi Dữ liệu hoặc DTS). Điều này sẽ cho phép bạn tạo một gói có thể cư trú ở mọi nơi và được chạy theo lịch biểu hoặc được gọi bất cứ khi nào bạn quyết định. Nó có thể chạy không đồng bộ với ứng dụng gọi nó là tốt.

cập nhật:
ngoài ra, bạn có thể chạy và gỡ lỗi gói để hoàn chỉnh gói trước khi bạn quyết định xuất bản. Điều này sẽ cho phép bạn để giải thích cho những thứ như tài liệu bị thay đổi, vv

nếu bạn không có SSIS sẵn cho bạn thì bạn có thể làm một số lượng lớn chèn (tham khảo: 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/)

tạo một bảng phù hợp với đề cương trong số csv của bạn, sau đó nhập nó bằng cách sử dụng như sau:

BULK 
INSERT MyTable 
FROM ‘c:\mycsv.csv’ 
WITH 
(
    FIELDTERMINATOR = ‘,’, 
    ROWTERMINATOR = ‘\n’ 
) 

từ đó bạn có thể biến đổi nó bằng cách sử dụng tsql như trong bảng trong db của bạn.

nếu đó là bản cập nhật liên tục, bạn có thể tạo bảng tạm thời để thực hiện công việc của mình và chạy thủ tục được lưu trữ dưới dạng công việc.

+0

tính năng này không khả dụng cho tôi vào lúc này. – phill

+0

được cập nhật vì bạn không có quyền truy cập vào SSIS –

+0

bạn cũng có thể muốn xem tại đây: http://support.microsoft.com/kb/321686 kể từ khi bạn đề cập đến tệp bắt đầu là excel –

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