很菜的触发器问题
表 user
字段:Num int
UID varchar
主码:Num
其中,Num为自动编号:1 2 3 4 5.......
我想实现当删除某条纪录时,这条记录后面的纪录的Num值自动减1,以保持Num的连续性,这个问题用触发器怎么解决??谢谢!!
问题点数:30、回复次数:4Top
1 楼nononono(null,null)回复于 2001-06-16 23:29:00 得分 20
只删除一条记录的话, 可在触发器中写:
update user set Num=Num-1 where Num>(select top 1 Num from deleted)
Top
2 楼tigerwood12345(tigerwood12345)回复于 2001-06-17 00:22:00 得分 5
你最好做个游标,那样就可以实现你的目的了!要是有什么不明白在来问我好了!Top
3 楼Kradwang(猕猴桃)回复于 2001-06-17 00:55:00 得分 5
如果你想保持num的连续性,就不要用识别种子.应为他不可能保持连续.
比如当前的最大num为10,删除这一记录,然后再insert识别种子的值为11而不是10.
因此,要保持连续性最好不要用识别种子,程序判断是少不了的.Top
4 楼wqs0006(顺子)回复于 2001-06-17 00:55:00 得分 0
谢谢!!!Top




