Ik denk dat het echte probleem is dat RFQ_ID, Action_Time
zou geen primaire sleutel moeten zijn. Maak een surrogaat
primaire sleutel en plaats een niet-unieke index op RFQ_ID, Action_Time
.
Bijwerken :Als je echt bij je bestaande ontwerp wilt blijven, kun je doen wat je vroeg, maar 10 milliseconden gebruiken in plaats van één milliseconde tussen elke rij, om de lage precisie van datetime te compenseren. U kunt het rijnummer gebruiken om te bepalen hoeveel milliseconden u moet toevoegen, zodat u voor elke rij een ander tijdstempel krijgt:
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