表 table_students
编号 姓名
1 阿勒
2 悬空
3 哟跑
4 酥软
5 沃尔现在要实现这么一个功能
是删除的时候触发
当我删除编号为3的信息时
后面的编号会自动补上去 也就是后面的4变成3,5变成4删除后:
编号 姓名
1 阿勒
2 悬空
3 酥软
4 沃尔
编号 姓名
1 阿勒
2 悬空
3 哟跑
4 酥软
5 沃尔现在要实现这么一个功能
是删除的时候触发
当我删除编号为3的信息时
后面的编号会自动补上去 也就是后面的4变成3,5变成4删除后:
编号 姓名
1 阿勒
2 悬空
3 酥软
4 沃尔
AFTER DELETE
AS
BEGIN
UPDATE T1 SET [编号]=(
SELECT COUNT(1) FROM TB T2 WHERE T2.[编号]<=T1.[编号]
)
FROM TB T1
END
row_number
可以讲解下么....
--> author:Ken Wong
--> Date: 2009-12-21 11:14:22
/*===============================================*/
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
create table [tb]([编号] int,[姓名] varchar(4))
insert [tb]
select 1,'阿勒' union all
select 2,'悬空' union all
select 3,'哟跑' union all
select 4,'酥软' union all
select 5,'沃尔'--触发器
create trigger changecode on [tb]
for delete
as
begin
update t set [编号] = (select count(1) from [tb] where [编号] <= t.[编号] )
from [tb] t
where [编号] >= (select [编号] from deleted)
end
--删除
delete [tb] where [编号] = 3select * from [tb]
----------------------
1 阿勒
2 悬空
3 酥软
4 沃尔
SELECT ROW_NUMBER() OVER (ORDER BY [编号] ASC)