Tôi nghĩ vấn đề thực sự là RFQ_ID, Action_Time
không nên là khóa chính. Tạo đại diện
khóa chính và đặt một chỉ mục không phải là duy nhất trên RFQ_ID, Action_Time
.
Cập nhật :Nếu bạn thực sự muốn gắn bó với thiết kế hiện có của mình, bạn có thể làm những gì bạn yêu cầu nhưng sử dụng 10 mili giây thay vì một mili giây giữa mỗi hàng, để bù cho độ chính xác thấp của ngày giờ. Bạn có thể sử dụng số hàng để xác định số mili giây cần thêm để bạn nhận được dấu thời gian khác nhau cho mỗi hàng:
INSERT INTO QSW_RFQ_Log
(RFQ_ID, Action_Time, Quote_ID, Note)
SELECT
RFQ_ID,
DATEADD(millisecond, 10 * ROW_NUMBER() OVER (ORDER BY Quote_ID), GETDATE()) AS Action_Time,
Quote_ID,
'Added to RFQ on Initialization' AS Note
FROM QSW_Quote