insert 触发器

smilewmr 2013-06-05 08:17:17
说明:
现有表A:字段为 a,b,c,d,e;表B:字段为b,c,d;要做触发器,当表A中有新增记录时,判断各个字段是否合法,合法则插入A表,同时将此记录插入B表,当B表新增完成后,将A表中的记录删除;如果字段有一个不合法则A表不新增记录,B表也不新增,记录直接丢弃。这个触发器如何写呢?在线等。。。。。。
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
smilewmr 2013-06-06
  • 打赏
  • 举报
回复
引用 2 楼 ap0405140 的回复:
敢问何谓合法?何谓不合法?
就是满足一定条件!各个字段有条件的!
smilewmr 2013-06-06
  • 打赏
  • 举报
回复
引用 1 楼 ejason 的回复:
create table A
(

 a int,
 b int,
 c int,
 d int,
 e int 
);

create table B
(

  
 b int,
 c int,
 d int 
 
);


CREATE TRIGGER TRI_A ON A
AFTER INSERT
AS 

BEGIN

 declare @a int,@b int ,@c int ,@d int ,@e int 
 select @a=a ,@b=b,@c=c ,@d=d,@e=e from inserted i
 if @a <>'' --invalid check  ,u would write yours business function to replace  it
 begin 
 
 insert into B(b,c,d) select @b,@c,@d
 
 delete a
 from A as a,inserted i
 where a.a=i.a and a.b=i.b
 
  end else begin

  rollback
end

END
谢谢啦!用这个搞定!
唐诗三百首 2013-06-05
  • 打赏
  • 举报
回复
敢问何谓合法?何谓不合法?
铁歌 2013-06-05
  • 打赏
  • 举报
回复
create table A
(

 a int,
 b int,
 c int,
 d int,
 e int 
);

create table B
(

  
 b int,
 c int,
 d int 
 
);


CREATE TRIGGER TRI_A ON A
AFTER INSERT
AS 

BEGIN

 declare @a int,@b int ,@c int ,@d int ,@e int 
 select @a=a ,@b=b,@c=c ,@d=d,@e=e from inserted i
 if @a <>'' --invalid check  ,u would write yours business function to replace  it
 begin 
 
 insert into B(b,c,d) select @b,@c,@d
 
 delete a
 from A as a,inserted i
 where a.a=i.a and a.b=i.b
 
  end else begin

  rollback
end

END

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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