在表格中,我有claimId
和paidDate
。对于给定的paidDate
,我有20 ClaimID
。 paidDate
数据类型是datetime。因此,业务需要付费日期对所有ClaimID
都是唯一的。那么如何在sqlserver中更新PaidDate
的唯一时间戳部分??
答案 0 :(得分:0)
在paiddate列中使用默认的getdate()
答案 1 :(得分:0)
您可以使用:
DATEADD(MINUTE, ClaimID, PaidDate)
这将保留paidDate值,但会添加ID的分钟数。
如果ID非常大,您可能需要分发ROW_NUMBER
并使用该ID添加为分钟。
答案 2 :(得分:0)
@Robin
将所有的claimid保存在游标中并逐个更新,并在更新语句后保持WAITFOR '00:00:01'clause ....每条记录将以1秒的差异更新...
答案 3 :(得分:-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