Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Adicionando milissegundos a um DateTime no TSQL INSERT INTO


Acho que o verdadeiro problema é que RFQ_ID, Action_Time não deve ser uma chave primária. Crie um substituto chave primária e coloque um índice não exclusivo em RFQ_ID, Action_Time .

Atualizar :Se você realmente quiser manter seu design existente, poderá fazer o que pediu, mas usando 10 milissegundos em vez de um milissegundo entre cada linha, para compensar a baixa precisão de data e hora. Você pode usar o número da linha para determinar quantos milissegundos adicionar para obter um carimbo de data/hora diferente para cada linha:
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