读书人

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

发布时间: 2012-04-08 14:38:30 作者: rapoo

触发器同时操作几个表
现有一表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……

[解决办法]
探讨

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

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

读书人网 >SQL Server

热点推荐