我的数据表ClassMember有字段StudentID(学生ID),ClasID(班级),State(状态)
其中State=1表示当前记录是有效记录,State=0表示当前记录是历史记录!
数据表ClassMember用来保存学生属于哪个班级的记录,要求是StudentID(假设为:12)
+State=1的记录只能有一条,StudentID(假设为:12)+State=0的记录的条数不限制! 即: StudentID ClassID State
1 1 1
1 2 0
1 3 0
为合法! StudentID ClassID State
1 1 1
1 2 1
1 3 0 为非法!用Check如何解决???用Trriger呢???
其中State=1表示当前记录是有效记录,State=0表示当前记录是历史记录!
数据表ClassMember用来保存学生属于哪个班级的记录,要求是StudentID(假设为:12)
+State=1的记录只能有一条,StudentID(假设为:12)+State=0的记录的条数不限制! 即: StudentID ClassID State
1 1 1
1 2 0
1 3 0
为合法! StudentID ClassID State
1 1 1
1 2 1
1 3 0 为非法!用Check如何解决???用Trriger呢???
解决方案 »
- 求SQL语句
- 判断登陆是否存在.
- 请教关于随机生成数和例增生成数
- 客户催了.....700W 的数据查询超时
- select * from A where ID in(98,49,50) 的排序问题.
- excel向sqlserver导入数据
- 存储过程
- 紧急求助:关于两个数据库的相同表的表结构(字段)如何比较?
- 两个存储过程间事务的问题,错误信息“不能在 INSERT-EXEC 语句内部使用 ROLLBACK 语句”,请高手帮忙,谢谢。
- 关于Sql Server的链接服务器功能(一定给分)
- 知道 在SQL2000中 行Job 修改file名?
- [kingmax54212008, zjcxc, 大虾们] 请教job 调用 DTS 问题 Error = -2147220482 (800403FE)
1 1 1
1 2 0
1 3 0
为合法! StudentID ClassID State
1 1 1
1 2 1
1 3 0 为非法! ---------------
反了吧?倒底哪个合法?
没有反啊,注意看了!
不能StudentID的State=1的有两条记录,
StudentID的State=0的记录可以有多条,不限制!
我写的没错吧!
可用trigger create trigger tr_ClassMember on ClassMember
after insert,update
as
--在新增或更新时触发
update c
set State=0
from
inserted i
join
ClassMember c on i.StudentID=c.StudentID and i.ClassID!=c.ClassID and c.State=1