使用 SQL Server 2008,使用 MS Visual Studio 2012 C# .NET4.5
上周我问了一个类似的问题,通过以下查询解决了这个问题:
DECLARE @from int = 9, @to int = 3
UPDATE MainPareto
SET pareto = m.new_pareto
FROM (
SELECT pKey, -- this is your primary key for the table
new_pareto = row_number()
over(ORDER BY CASE WHEN pareto = @from THEN @to ELSE pareto END,
CASE WHEN pareto = @from THEN 0 ELSE 1 END)
FROM MainPareto
-- put in any conditions that you want to restrict the scores by.
WHERE PG = @pg AND pareto IS NOT NULL
-- end condtions
) as m
INNER JOIN MainPareto ON MainPareto.pKey = m.pKey
WHERE MainPareto.pareto <> m.new_pareto
如您所见,这很好用,在进行更改时会增加“联盟”。
现在,在某些功能用户请求删除和恢复之后。
在我的 winform 上,用户可以右键单击网格并删除“零件”编号。
如果需要,用户也可以恢复。
但是,我需要一个存储过程,它将在从另一个存储过程中删除之后像这种方法一样使用网格和更新,我的 Winform 会对该部分进行排序,但我确实需要一个可以完成我当前的过程的过程删除。
希望你们理解,如果不问我,我会尽力澄清。