Tôi quyết liệt cắt giảm câu đố, nhưng tôi nghĩ ý định đó đã tỏa sáng. [Def]là một [DefaultClassification]bảng và [Cls]là một [Classification]bảng có một số bản ghi cũ cần được thêm vào. Bảng DefaultClassification sẽ được sử dụng trong tương lai để sinh ra các nhóm bản ghi mới vào một bảng khác và chúng tôi đang "phá vỡ" một bit hiện có logic / dữ liệu với quá trình này.
Tôi đã làm hết sức mình để chắt lọc toàn bộ những thứ cần thiết nhất, nhưng tôi đã có một quy trình tương tự khác chạy ngay sau quy trình này, vì vậy tôi đang tìm hiểu các thực tiễn tốt nhất và tại sao truy vấn này bị hỏng.
Khi tôi viết bài này, tôi dự định nó sẽ chạy trong môi trường 2008+, được viết theo kịch bản hoặc thủ công trong SSMS. Tôi không biết rằng nó sẽ không được viết kịch bản, nhưng nó có thể. Ngay bây giờ nó hoàn toàn chạy bằng tay. Việc khôi phục và chọn ở trên cùng phía trên các thông báo in ở cuối là vì nó không hoạt động đúng, vì vậy điều này cho phép tôi xác thực nó trước khi cam kết. Tuy nhiên, tôi thích một kịch bản hợp lệ mà tôi không phải làm quen với
Vấn đề cụ thể tôi có là ở dòng 62 của bản sửa đổi đó một liên kết http://sqlfiddle.com/#!3/ef71e/1 và nó trông như thế này:
RIGHT OUTER THAM GIA [Def] tcd
nếu tôi lật QUYỀN đó thành TRÁI, nó thực hiện thao tác chèn nhưng không phát hiện các bản sao (để tránh chèn) và nếu tôi thực hiện QUYỀN, nó sẽ phát hiện các bản sao nhưng không xử lý các phần chèn thêm.
Tôi đã làm gì? Và tại sao?
Và tôi đã nói rằng việc sử dụng @@ERRORjuju là xấu, nhưng tôi không biết tại sao, vì vậy điểm thưởng (tiền thưởng 100 rep) cho lời giải thích đó.