SqlServer设置序列无自动递增和递减

时间:2016-04-08 18:54:24

标签: mysql sql-server

我有字段Serial_No,只计算我用过的学生的序列号

身份(1,1)

但问题是,如果我删除行/行,它不会减少Serial_No像

Serial_No名称标记

1 Ehsan 50

3 Nouman 40

9 ejaz 56

10 ali 30

11 saleem 78

15 abdullah 90

.... ..... ....

...... .. .....

我需要Serial_No自动增量,但在删除和插入行

后也需要更新

如1,2,3,4,5,6,7,8,9,10,11,..........

1 个答案:

答案 0 :(得分:0)

SQL Server在这里回答,因为两者都在帖子中标记。我会说要单独留下你的身份栏。让它执行它的设计方式。而是创建一个选择所有列的视图,还包括一个窗口函数(row_number)来生成您正在寻找的顺序列表。

CREATE VIEW view_YourTable AS (
select *
, ROW_NUMBER() OVER(order by serial_no) AS sequential_id 
FROM your_table);

SELECT * 
FROM view_YourTable