求一触发器

wzllin 2013-07-19 10:45:38
三个字段,id,bh,mc 其中id 是自增字段
求一触发器,bh 加 mc 存在的记录不允许插入
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2013-07-19
  • 打赏
  • 举报
回复
用唯一约束即可..

 alter table [表名] add constraint uq_[表名] unique(bh,mc)
哥眼神纯洁不 2013-07-19
  • 打赏
  • 举报
回复
约束的命令不太熟,给你写个触发器的吧...

create trigger trigger_a
on a after insert  --假定你的表名叫a
as
begin
declare @id varchar(max)
declare @bh varchar(max)
declare @mc varchar(max)
select @id=convert(varchar,id),@bh=convert(varchar,bh),@mc=convert(varchar,mc) from inserted
if(select 1 from a where convert(varchar,bh)=@bh and convert(varchar,mc)=@mc) is not null
delete a where convert(varchar,id)=@id and convert(varchar,bh)=@bh and convert(varchar,mc)=@mc
end
wzllin 2013-07-19
  • 打赏
  • 举报
回复
引用 楼主 wzllin 的回复:
三个字段,id,bh,mc 其中id 是自增字段 求一触发器,bh 加 mc 存在的记录不允许插入
哥眼神纯洁不 2013-07-19
  • 打赏
  • 举报
回复
约束也行吧...
哥眼神纯洁不 2013-07-19
  • 打赏
  • 举报
回复
引用 5 楼 wzllin 的回复:
[quote=引用 3 楼 sc273607742 的回复:] 约束的命令不太熟,给你写个触发器的吧...

create trigger trigger_a
on a after insert  --假定你的表名叫a
as
begin
declare @id varchar(max)
declare @bh varchar(max)
declare @mc varchar(max)
select @id=convert(varchar,id),@bh=convert(varchar,bh),@mc=convert(varchar,mc) from inserted
if(select 1 from a where convert(varchar,bh)=@bh and convert(varchar,mc)=@mc) is not null
delete a where convert(varchar,id)=@id and convert(varchar,bh)=@bh and convert(varchar,mc)=@mc
end
没有重复的也添加不进去了[/quote] 不好意思,写错了 create trigger trigger_a on a after insert --假定你的表名叫a as begin declare @id varchar(max) declare @bh varchar(max) declare @mc varchar(max) select @id=convert(varchar,id),@bh=convert(varchar,bh),@mc=convert(varchar,mc) from inserted if(select 1 from a where convert(varchar,bh)=@bh and convert(varchar,mc)=@mc) > 0 delete a where convert(varchar,id)=@id and convert(varchar,bh)=@bh and convert(varchar,mc)=@mc end 最好用约束控制,看4楼大神的
wzllin 2013-07-19
  • 打赏
  • 举报
回复
引用 3 楼 sc273607742 的回复:
约束的命令不太熟,给你写个触发器的吧...

create trigger trigger_a
on a after insert  --假定你的表名叫a
as
begin
declare @id varchar(max)
declare @bh varchar(max)
declare @mc varchar(max)
select @id=convert(varchar,id),@bh=convert(varchar,bh),@mc=convert(varchar,mc) from inserted
if(select 1 from a where convert(varchar,bh)=@bh and convert(varchar,mc)=@mc) is not null
delete a where convert(varchar,id)=@id and convert(varchar,bh)=@bh and convert(varchar,mc)=@mc
end
没有重复的也添加不进去了

34,594

社区成员

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

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