触发器问题,代码我都贴出来了
表结构:
class表
class_id class_name
1 类别一
2 类别二
3 类别三
.
.
.
admin表
admin_id admin_name admin_pass flag
1 姓名一 密码一 1,2
2 姓名二 密码二 1,2,3
3 姓名三 密码三 1,3
4
5
.
.
.
我想在删除类别表某一纪录的时候,对应的class_id在flag里的去掉。
比如我删除class_id=2后,admin变为1 -------- 1,3---------1,3
现在问题是我的class_id为flag的最后一位时就是删不掉。中间的和第一位的时候都可以删。
CREATE TRIGGER [class_admin] ON dbo.class
FOR DELETE
AS
declare @id int
select @id=class_id from deleted
delete from admin where flag=rtrim(convert(char(3),@id))
update admin set flag=replace(flag,rtrim(convert(char(3),@id))+',','')
where flag like '%'+rtrim(convert(char(3),@id))+'%'
update admin set flag=replace(flag,','+rtrim(convert(char(3),@id)),'')
where flag like '%'+rtrim(convert(char(3),@id)) and admin_level=0