SQL server 修改日期列里所有2个重复时间的其中一个加一毫秒,把日期列做主键

img


第一列日期里有很多重复的时间,把所有重复的时间其中一个(上面的)加一毫秒,保证第一列没有重复数据。


--更新,考虑时间重复的可能不止两个的情况(毫秒的精读是0,3,7)
;WITH ct
AS
(
SELECT *,ROW_NUMBER() OVER(PARTITION BY 日期 ORDER BY 日期) AS xx
FROM 表
)
UPDATE ct SET 日期=DATEADD(ms,CASE xx%3 WHEN 0 THEN 0 WHEN 1 THEN 3 WHEN 2 THEN 7 END ,日期)
WHERE xx>1

--添加主键
ALTER TABLE biao ADD CONSTRAINT pk_biao_riqi PRIMARY KEY(日期)