首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

触发器同时操作几个表,该怎么解决

2012-04-08 
触发器同时操作几个表现有一表A 里有字段Id, CREATORID, SENDTIME, SENDLEVEL, RF_ID现有一表B 里有字段Id

触发器同时操作几个表
现有一表A 里有字段 Id, CREATORID, SENDTIME, SENDLEVEL, RF_ID
现有一表B 里有字段 Id CREATORID, SENDTIME, SENDLEVEL, SENDSTATE, Template_Id (有10W数据)


要求实现:现在向表A插入数据同时更新B表



两表的关系是:表A中的RF_ID字段里内容来自与表B中的Template_Id 也就是 B.Template_Id =A.RF_ID


ALTER TRIGGER [dbo].[Tri_Insert_Update_Net]
  ON A
  AFTER INSERT
AS 
BEGIN
  declare @CREATORID varchar(40),@SENDTIME datetime,@SENDLEVEL smallint,@RF_ID int 
  select @CREATORID=CREATORID,
  @SENDTIME=SENDTIME,
  @SENDLEVEL=SENDLEVEL,
  @RF_ID=RF_ID  
  from inserted
update B
set B.CREATORID=@CREATORID,
B.SENDTIME=@SENDTIME,
B.SENDLEVEL=@SENDLEVEL
where B.Template_Id=@RF_ID
END



为何没有用呢

[解决办法]
试一下水哥的

探讨

SQL code
--try
ALTER TRIGGER [dbo].[Tri_Insert_Update_Net]
ON A
AFTER INSERT
AS
BEGIN
update B
set B.CREATORID=i.CREATORID,
B.SENDTIME=i.SENDTIME,
B.SENDLEVEL=i.SENDLEVEL
from inserted i
where……

[解决办法]
探讨

很怪的事。。如果在数据中直接在数据库中插入,另一个表会更新。。

如果在前台操作来更新,数据库已经插入了。但另一个表没有更新。。

热点排行