--不可以用约束,写触发器吧
create trigger tr_process on 表
for insert,update,delete
as
update a set TypeNO=(select count(*) from 表 where TypeID=a.TypeID and id<=a.id)
from 表 a,(
select id=min(id),TypeID
from(
select id=min(id),TypeID from inserted group by TypeID
union all
select id=min(id),TypeID from deleted group by TypeID
)a group by TypeID
)b where a.TypeID=b.TypeID and a.id>=b.id