这个可以不用触发器update b set hdb002=a.DEA055,HDB003=a.DEA066 from a,b where a.DEA001=b.HDB003 and a.DEA002 is null
由于种种原因,需要用触发器来写,我写了 如下 CREATE TRIGGER [TR_UPDATEHDB01] ON[dbo].[DCSHDB] FOR UPDATE AS DECLARE @DEA960 VARCHAR(60), @DEA961 VARCHAR(60), @DEA001 VARCHAR(20), @DEA002 VARCHAR(30) BEGIN TRANSACTION SET NOCOUNT ON SELECT @DEA960=DEA960,@DEA961=DEA961,@DEA002=DEA002,@DEA001=DEA001 FROM INSERTED IF @DEA002='' BEGIN UPDATE DCSHDB SET HDB004=DEA960,HDB040=DEA961 WHERE HDB003=@DEA001 END SET NOCOUNT OFF COMMIT TRANSACTION字段名称有变化,但是执行不起,不知道哪里错了
CREATE TRIGGER tr_TPADEA ON TPADEA FOR UPDATE AS begin UPDATE d SET HDB002=i.DEA055,HDB003=i.DEA055 FROM INSERTED i,DCSHDB AS d WHERE i.DEA001=d.HDB003 AND isnull(i.DEA002,'')='' END
我是想在DCSHDB这张表中创建触发器,这样在修改DCSHDB这张表时就能触发出来。
CREATE TRIGGER tr_DCSHDB ON DCSHDB FOR UPDATE AS begin UPDATE d SET DEA055=i.HDB002,DEA055=i.HDB003 FROM INSERTED i,TPADEA AS d WHERE d.DEA001=i.HDB003 AND isnull(i.DEA002,'')='' END
b
set
hdb002=a.DEA055,HDB003=a.DEA066
from
a,b
where
a.DEA001=b.HDB003
and
a.DEA002 is null
CREATE TRIGGER [TR_UPDATEHDB01] ON[dbo].[DCSHDB]
FOR UPDATE
AS DECLARE @DEA960 VARCHAR(60),
@DEA961 VARCHAR(60),
@DEA001 VARCHAR(20),
@DEA002 VARCHAR(30)
BEGIN TRANSACTION
SET NOCOUNT ON
SELECT @DEA960=DEA960,@DEA961=DEA961,@DEA002=DEA002,@DEA001=DEA001 FROM INSERTED
IF @DEA002=''
BEGIN
UPDATE DCSHDB SET HDB004=DEA960,HDB040=DEA961 WHERE HDB003=@DEA001
END
SET NOCOUNT OFF
COMMIT TRANSACTION字段名称有变化,但是执行不起,不知道哪里错了
FOR UPDATE
AS
begin
UPDATE d
SET HDB002=i.DEA055,HDB003=i.DEA055
FROM INSERTED i,DCSHDB AS d
WHERE i.DEA001=d.HDB003 AND isnull(i.DEA002,'')=''
END
FOR UPDATE
AS
begin
UPDATE d
SET DEA055=i.HDB002,DEA055=i.HDB003
FROM INSERTED i,TPADEA AS d
WHERE d.DEA001=i.HDB003 AND isnull(i.DEA002,'')=''
END