sql >> Base de Datos >  >> RDS >> Sqlserver

Agregar milisegundos a DateTime en TSQL INSERT INTO

Creo que el verdadero problema es que RFQ_ID, Action_Time no debería ser una clave principal. Cree un sustituto clave principal y coloque un índice no único en RFQ_ID, Action_Time .

Actualizar :Si realmente quiere seguir con su diseño existente, puede hacer lo que pidió, pero usando 10 milisegundos en lugar de un milisegundo entre cada fila, para compensar la baja precisión de la fecha y hora. Puede usar el número de fila para determinar cuántos milisegundos agregar para obtener una marca de tiempo diferente para cada fila:

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