使用行号的记录的新序列号

时间:2012-08-02 11:41:17

标签: sql vb.net ms-access

我有一个包含列'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

1 个答案:

答案 0 :(得分: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,因为上面提到的这不是好的做法。