我有一个UserInfo表,要求在插入的时候其中的两列不能有重复值,列字义如下:
ID:长整型,自动增长,主键
Name:字符型,不为空
ZhuanYe:字符型
Sex:字符型要求其中Name列和ZhuanYe两列不能相同,比如数据ID name ZhuanYe Sex
1 张 电子 男
2 王 机械 男
3 李 管理 男
4 李 管理 女
5 赵 机械 女其中第三行和第四行只能要其中的一行,这个应用在插入记录时的触发器应该怎么写呀???
ID:长整型,自动增长,主键
Name:字符型,不为空
ZhuanYe:字符型
Sex:字符型要求其中Name列和ZhuanYe两列不能相同,比如数据ID name ZhuanYe Sex
1 张 电子 男
2 王 机械 男
3 李 管理 男
4 李 管理 女
5 赵 机械 女其中第三行和第四行只能要其中的一行,这个应用在插入记录时的触发器应该怎么写呀???
as
begin
if exists(select * from UserInfo where (name=select name from inserted)
and (ZhuanYe =select ZhuanYe from inserted))
rollback
end
看看select Count(*) as Total From Table1 where 复合条件的 看看返回的结果决定是插入还是报错误的信息 应该可以实现的把
(select name from inserted ) or zhuanye in(select zhuanye from inserted )).................
for insert as
begin
if exests (select * from userinfo where name in
(select name from inserted ) or zhuanye in(select zhuanye from inserted ))rollbackend
Create trigger InsertUser
on UserInfo for insert
as
begin
if (select Count(*) from UserInfo where (EMail in (select EMail from inserted)) and (ListNum in (select ListNum from inserted)))>1
rollback
end
on UserInfo for insert
as
begin
if exists(select * from UserInfo where name+ZhuanYe=inserted.name+inserted.ZhuanYe)
rollback
end