我有一个表,其中包含以下列:ComponentID、PartID、Position、Country 和 City。主键由 ComponentID、PartID、Country 和 City 组成。
我正在使用 MS SQL Azure。
可能会删除“部分”。如果发生这种情况,我需要能够重置组件和零件的所有位置,但按国家和城市划分。
我已经编写了下面的代码,但它会引发主键错误。任何人都可以帮忙吗?
-- Update the positions
;WITH CTE AS
(
SELECT Comp.Position,
RowNum = row_number() OVER (partition by Comp.Country, Comp.City order by Comp.Position ASC)
FROM Comp
WHERE Comp.CompID = @selectedComponent
)
UPDATE CTE
SET Position = RowNum