在一个表格中,我有claimId
和paidDate
。对于给定的paidDate
我有 20 ClaimID
. paidDate
数据类型为日期时间。因此,业务需要支付日期对于所有ClaimID
都是唯一的。那么如何在 sqlserver 中更新PaidDate
的唯一时间戳部分..?
在 paiddate 列中使用默认的 getdate()
您可以使用:
DATEADD(MINUTE, ClaimID, PaidDate)
这将保留 paidDate 值,但添加 ID 的分钟数。如果 ID 非常大,您可能需要分发一个ROW_NUMBER
并使用它作为分钟添加。
@Robin
将所有声明ID保存在游标中并逐个更新,更新语句后保持WAITFOR '00:00:01'子句....每条记录都将以 1 秒的差异进行更新...
@Robin...
declare @claimid int
declare cur CURSOR FOR
select claimid from dbo.claimsID order by claimid
begin
open cur
FETCH next FROM cur
into @claimid
WHILE @@FETCH_STATUS = 0
begin
update dbo.claimsID set paiddate=getdate() where claimid=@claimid
waitfor delay '00:00:01'
FETCH next FROM cur
into @claimid
end
CLOSE cur
DEALLOCATE cur
end