Jag tror att det verkliga problemet är att RFQ_ID, Action_Time
bör inte vara en primärnyckel. Skapa ett surrogat
primärnyckel och sätt ett icke-unikt index på RFQ_ID, Action_Time
.
Uppdatera :Om du verkligen vill hålla fast vid din befintliga design kan du göra vad du bad om men använda 10 millisekunder i stället för en millisekund mellan varje rad, för att kompensera för den låga precisionen i datumtid. Du kan använda radnumret för att bestämma hur många millisekunder som ska läggas till så att du får en annan tidsstämpel för varje rad:
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