sql 写一个触发器
来源:百度知道 编辑:UC知道 时间:2024/09/21 17:48:05
CREATE TRIGGER 触发器名称
ON 表名
FOR INSERT,UPDATE
AS
DECLARE @A
DECLARE @B
UPDATE INVMB
SET C=INSERTED.B
FROM INVMB INNER JOIN INSERTED
ON A=INSERTED.A
这样可以么?
Create Trigger [dbo.UpInsTable]
ON [dbo.表名]
After Insert,Update
As
If Exists(Select Top 1 * From Deleted)--表示是修改操作.
UPDATE 表名 Set C=D.B
From 表名 A Inner Join DeleteD D On A.A=D.A
Else --表示是新增操作
UPDATE 表名 Set C=D.B
From 表名 A Inner Join Inserted D On A.A=D.A
PS:楼上的方法只能用于单一记录操作,如果是批量修改或批量新增的话,楼上的方法就会出错了..
CREATE TRIGGER [UDT_TABLE1i]
ON [TABLE1]/*[TABLE1]表名*/
FOR INSERT AS
DECLARE
@A char(10),
@B char(10),
@C char(10)
SELECT @A = A,
@B = B,
@C = C
FROM INSERTED
UPDATE TABLE1
SET C = @B
WHERE A = @A
/*INSERT的存储过程,具体可以自己增加,其他类触发器类似*/
create trigger 触发器名称
after insert or update on 表名
for each row
AS
begin
if inserting then
update 表名 set C=new.B where A=new.A;
elsif updating then
update 表名 set C=new.B where A=new.A;
end if;
end;