給你一個例子參考﹕
tabx,taby表的結構一樣CREATE TRIGGER TRIG_TabXY
ON TabX
AFTER INSERT
AS
IF (SELECT person_no FROM inserted)>0
BEGIN
INSERT INTO TabY(dept_no,person_no,sex,salary)
SELECT dept_no,person_no,sex,salary FROM inserted
PRINT 'TabX有記錄增加了,同時觸發TabY。'
END
GO
tabx,taby表的結構一樣CREATE TRIGGER TRIG_TabXY
ON TabX
AFTER INSERT
AS
IF (SELECT person_no FROM inserted)>0
BEGIN
INSERT INTO TabY(dept_no,person_no,sex,salary)
SELECT dept_no,person_no,sex,salary FROM inserted
PRINT 'TabX有記錄增加了,同時觸發TabY。'
END
GO
compno,name,a,b,c,d
表2
compno,name,x,y,z
如何实现
1。在表1中增加一条记录,表2也增加一条记录。表2的compno,name要和表1的相同。
在你的表2中x,y,z3列可以为空的情况下:
create trigger tr1
on 表1
for insert
as
insert into 表2(compno,name)
select compno,name from inserted
go
2。在表1中删除一条记录,表2也删除compno和表1相同的记录。
如果表1和表2设置了内外键:create trigger tr2
on 表1
instead of delete
as
delete from 表2
where compno=(select compno from deleted)
delete from 表1
where compno=(select compno from deleted)
go如果表1和表2没有设置内外键:create trigger tr2
on 表1
for delete
as
delete from 表2
where compno=(select compno from deleted)
go3。在表1中修改一条记录,表2也修改和表1compno相同记录的name。
create trigger tr3
on 表1
for update
as
update 表2
set name=(select name from inserted)
where compno=(select compno from deleted)
go
create trigger tr3
on 表1
for update
as
if (update(name))
begin
update 表2
set name=(select name from inserted)
where compno=(select compno from deleted)
end
go