admin

SQL如何在表格中间插入新行

sql

这是我的问题:

我想在表中插入新行,但是其中已经有一些寄存器。如果我需要将此新行与已注册的行放在同一行,该怎么办?

例如:

我有此表与此行:

ID|Value
1 |Sample1
2 |Sample2
3 |Sample3

但是现在我想在Sample2所在的位置插入新行,因此表应如下所示:

ID|Value
1 |Sample1
2 |NewSample
3 |Sample2
4 |Sample3

有什么想法吗?


阅读 272

收藏
2021-07-01

共1个答案

admin

有什么想法吗?

是的。如果您在某处有引用,请忘记更改主键(ID)。

而是添加一列(例如ViewOrder)为您显式处理此列:

ID|Value     | ViewOrder
1 |Sample1   |1
5 |NewSample |2
2 |Sample2   |3
3 |Sample3   |4

查询以选择:

SELECT ID, Value, ViewOrder FROM yourTable ORDER BY ViewORDER

插入/更新 看起来像这样(当然,YourRowIndex是您希望在其中插入新行的索引):

UPDATE dbo.table SET VIEWORDER = VIEWORDER + 1 WHERE VIEWORDER >= @YourRowIndex ;
SET IDENTITY_INSERT dbo.table ON
INSERT dbo.table (Value, ViewOrder) VALUES (@YourValue, @YourRowIndex);
2021-07-01