Jeg tror, det virkelige problem er, at RFQ_ID, Action_Time
bør ikke være en primær nøgle. Opret en surrogat
primær nøgle og sæt et ikke-unik indeks på RFQ_ID, Action_Time
.
Opdater :Hvis du virkelig vil holde fast i dit eksisterende design, kan du gøre, hvad du bad om, men bruge 10 millisekunder i stedet for et millisekund mellem hver række for at kompensere for den lave præcision af datetime. Du kan bruge rækkenummeret til at bestemme, hvor mange millisekunder der skal tilføjes, så du får et forskelligt tidsstempel for hver række:
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