gpt4 book ai didi

c# - sql server 手动增加订单id

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:47 27 4
gpt4 key购买 nike

id name order
1 a 102
2 b 103
3 c 104
4 d 105
5 e 106
6 f 107
7 g 108
8 h 109
9 i 110

上面显示为“按顺序 ASC 排序”column id 为主键,自增1列名是一个 varcharcolum order 是一个 int

我想更新指定行的订单号。例如,我想将 id 9 移到第一个订单 (102) 并更改所有其他 id 的订单号。

有没有办法在 ms sql 中以编程方式进行操作?

这是我网站的产品页面。我想订购我想要的产品....

编辑:对不起,这是我的第一次,我想解释更多。

首先,对于删除主键,我不想更改主键。我只是想改变他们的订单ID,在上面的例子中,我想将“id=9”的“订单”更改为102,然后其他人需要从103,104,105等跟进。

RESULT 将是...

id name order
9 i **102**
1 a **103**
2 b **104**
3 c **105**
4 d **106**
5 e **107**
6 f **108**
7 g **109**
8 h **110**

最佳答案

我认为你不应该弄乱一行的 id(主键)。它应该是不可变的

如果您需要自定义排序,添加一个新列就足够了

ALTER TABLE dbo.MYTABLENAME ADD
Sort int NOT NULL CONSTRAINT DF_tmp_Sort DEFAULT 0
GO

这样你就可以根据需要对其进行排序和更改

问题编辑后更新:

好的,现在我明白你的要求了:

SELECT *
FROM dbo.MYTABLENAME
ORDER BY CASE WHEN ID = 9 THEN 0
ELSE ID END ASC

进一步(希望最后)更新

你只需要 2 个简单的更新:

UPDATE dbo.MYTABLENAME SET order=order+1 WHERE order>=102;
UPDATE dbo.MYTABLENAME SET order=102 WHERE id=9;

关于c# - sql server 手动增加订单id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27296869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com