1

我有一个包含“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
4

1 回答 1

0

创建临时表:

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,因为如上所述这不是好的做法。

于 2012-08-02T13:54:58.983 回答