Je pense que le vrai problème est que RFQ_ID, Action_Time
ne devrait pas être une clé primaire. Créer un substitut
clé primaire et placez un index non unique sur RFQ_ID, Action_Time
.
Mettre à jour :Si vous voulez vraiment vous en tenir à votre conception existante, vous pouvez faire ce que vous avez demandé, mais en utilisant 10 millisecondes au lieu d'une milliseconde entre chaque ligne, pour compenser la faible précision de datetime. Vous pouvez utiliser le numéro de ligne pour déterminer le nombre de millisecondes à ajouter afin d'obtenir un horodatage différent pour chaque ligne :
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