一个表的设计问题

wfu 2004-12-06 02:20:28
有这样一个表:
ID:唯一标识
TypeID: 类型ID
TypeNO: 在某一类型中的序号

也是说,TypeNo是标识在同一个TypeID中的序号,对于同一个TypeID,从1开始并累加.
ID TypeID TypeNO
1 1269 1
2 1269 2
3 1701 1
4 1701 2
5 1701 3
这种情况下是否可以对该字段设置约束条件使得该字段的值可以由数据库自动产生而不用程序生成吗?
...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-12-06
  • 打赏
  • 举报
回复

--不可以用约束,写触发器吧
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

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧