数据库数据不能重复问题
数据库中有假设三列 A B C
A 学校名称 不可为空
B 班级名称 不可为空
C 班级荣誉 可为空
要求是 A列的值可以重复 但是如果相同A列的值的话 B C 列不可以重复 但是C列可能有Null值
比如
A B C
1 1 1 对
1 2 2 对
1 1 2 错 A列为1 B列为1 的已经存在了
1 1 NUll 错
1 3 1 错 A列为1 C列为1 的已经存在了
1 4 4 对
2 1 1 对
2 1 2 错
2 2 1 错
应该创建什么触发器 或是索引什么的来进行限制呢?
[解决办法]
呵呵,修改的只需要这样,加一个update就可以了:
create table tb(a int not null ,b int not null ,c int)
go
create trigger dbo.trigger_insert_tb
on tb
for insert,update
as
if (select COUNT(*)
from inserted i
inner join tb t
on t.a = i.a and t.b = i.b) >= 2
rollback
if (select COUNT(*)
from inserted i
inner join tb t
on t.a = i.a and t.c = i.c) >= 2
rollback
go