+ -
当前位置:首页 → 问答吧 → 触发器问题

触发器问题

时间:2011-12-20

来源:互联网

想做一个触发器能够实现,A表插入数据后,根据cwh的不同更新插入数据的ccode值

update语句直接使用可以更新,但是放到触发器里边以后就不可以。请各位帮帮忙,以下是代码


IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' AND NAME = 'T_INSERT_A') 
DROP TRIGGER T_INSERT_T_INSERT_A 
GO 

CREATE TRIGGER T_INSERT_T_INSERT_A 
ON A 
for INSERT 
AS 
----提交事务处理 
BEGIN TRANSACTION 
--强制执行下列语句,保证业务规则 
UPDATE A
SET ccode = '9' + ccode
WHERE cwh IN (23,24) and id in (select id from inserted)
COMMIT TRANSACTION

作者: xemljj   发布时间: 2011-12-20

不用加事务吧这里

作者: pengxuan   发布时间: 2011-12-20

SQL code
UPDATE A
SET ccode = '9' + i.ccode
from a inner join inserted i on a.id=i.id
WHERE cwh IN (23,24) and id in (select id from inserted)

作者: fredrickhu   发布时间: 2011-12-20

终于找到原因了,是因为先执行了触发器后来执行了insert语句。

作者: xemljj   发布时间: 2011-12-20