sql server 每加一条数据实现自动加一,但怎么实现删除一条数据后自动减一
答案:4 悬赏:40
解决时间 2021-02-27 15:02
- 提问者网友:绿海猖狂
- 2021-02-26 15:11
sql server 每加一条数据实现自动加一,但怎么实现删除一条数据后自动减一
最佳答案
- 二级知识专家网友:放肆的依賴
- 2021-02-26 16:02
ID列如果不是自增字段,可以搞个触发器,参考下这个:
create trigger [dbo].[trig_delete] --创建触发器
on 表的名字 --作用于表
for delete --删除数据的时候触发
as
begin
declare @id int,@max_id int --定义变量,@id为删除数据的id号,@max_id为最大id号
select @id=ID列 from deleted --找出删除数据的id号
select @max_id=count(1) from 表的名字 --得出最大id号
while @id<@max_id begin
update 表的名字 --更新表,从删除数据那行的下一行开始id设为@id
set ID列=@id
where ID列=@id+1
set @id=@id+1 --@id加1,使之循环
end
end
create trigger [dbo].[trig_delete] --创建触发器
on 表的名字 --作用于表
for delete --删除数据的时候触发
as
begin
declare @id int,@max_id int --定义变量,@id为删除数据的id号,@max_id为最大id号
select @id=ID列 from deleted --找出删除数据的id号
select @max_id=count(1) from 表的名字 --得出最大id号
while @id<@max_id begin
update 表的名字 --更新表,从删除数据那行的下一行开始id设为@id
set ID列=@id
where ID列=@id+1
set @id=@id+1 --@id加1,使之循环
end
end
全部回答
- 1楼网友:强势废物
- 2021-02-26 18:38
alter table 表名 drop constraint 主键名
sp_help 表
- 2楼网友:承载所有颓废
- 2021-02-26 17:06
如果你用自增列的话是没办法自动减一的,除非你有管理员权限重置种子步长
- 3楼网友:青春如此荒謬
- 2021-02-26 16:10
么有现成的功能。只能自个算,
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯