2012-03-30 43 views
5

Tôi có 2 bảng giống hệt nhau trong SQL Server 2008, một là bảng "Sống" mà ứng dụng của tôi liên tục sử dụng. Tôi kéo xuống các bản ghi mới định kỳ trong ngày và chèn chúng vào một bảng "dàn dựng" mà từ đó tôi cần phải kéo các bản ghi mới và chèn vào bảng Live. Tôi không muốn bất kỳ bản sao nào được chèn vào chỉ trong trường hợp một số bản ghi được chồng lên nhau. Có 10 cột mà tôi cần xem xét để xem có một bản ghi giống hệt nhau không, tôi đã xem xét một số ví dụ TSQL nhưng không có gì cho đến nay đang làm việc, tôi cũng xem xét xử lý các lỗi và chỉ báo cáo các giá trị DISTINCT. làm việc cho một bản ghi, tôi cần nó để làm việc cho 10. Bất kỳ đề xuất?Điền bảng trực tiếp với các bản ghi từ bảng dàn

Cảm ơn, Sam

Trả lời

5

Đây là một trường hợp sử dụng lý tưởng cho NOT EXISTS - bạn có thể kiểm tra trên nhiều tiêu chí như bạn muốn để xác minh bạn sẽ không chèn một dupe.

INSERT INTO Live 
SELECT <fields> 
FROM Staging s 
WHERE NOT EXISTS (SELECT 1 
        FROM Live l 
        WHERE s.FieldA = l.FieldA 
        AND s.FieldB = l.FieldB 
        <all your checks here>...) 
+0

Điều đó thật tuyệt vời, cảm ơn! –

+0

@SamCromer sẵn lòng trợ giúp. – JNK

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