我有一个包含“id”和“name”列的表
id Name
1 John
2 Peter
3 Alex
4 Robin
5 Mario
因此,当我删除记录“3 Alex”时,它应该如下所示。我知道可以使用行号,但我不知道该怎么做。我需要一个合适的 sql 才能在 vb.net(或访问)中使用。
id Name
1 John
2 Peter
3 Robin
4 Mario
创建临时表:
DECLARE @tbl TABLE(
[Name] VARCHAR(64) NULL
, OldID INT NULL
, NewID INT INCREMENT(1,1)
)
INSERT INTO @tbl
(
[Name]
, OldID
)
SELECT
[Name]
, ID
FROM
OriginalDataTable
WHERE
ID NOT IN (4, 5) ' actually 3 for your example
ORDER BY
ID
SELECT
[Name]
, NewID ID
FROM
@tbl
ORDER BY
NewID
我有点假设您真的不想更改实际 ID,因为如上所述这不是好的做法。