我想就完成以下任务提出一些建议:
我有三张桌子:
表1包含“所有”列,表2和表3具有表1中相同的列子集。
表1-Col 1,Col 2,Col 3,Col 4,Col 5,Col 6
表2 - 第1栏,第2栏,第5栏
表3 - 第1栏,第2栏,第5栏
我在表1中有一个触发器,当Col 3 ='1'时,将第1,2和5列插入表2后插入。
我在表1中有第二个触发器,当Col 3 ='10'时,将第1,2和5列插入表3后插入。
该系统正在跟踪序列化部件,因此对于任何一个部件,第2列对于每个部件(序列号)都是相同的。
我需要的是,当发生向表3插入记录的触发器时,我想回到表2并删除任何记录,其中Col 2包含的值等于INSERT的col 2中的值。 / p>
这个值是一个20个字符的字符串,我找不到从插入中的列中提取实际值以在SELECT或DELETE中使用的示例。
谢谢
答案 0 :(得分:1)
您需要表1的触发器,它会插入表2和表3中的值:
create trigger insertTrigger1 on dbo.T1
After Insert
as
insert into T2 select col1,col2, col5 From Inserted where col3 = 1
insert into T3 Select col1,col2, col5 From Inserted where col3 = 10
和表3的触发器删除表2记录:
create trigger insertTrigger3 on dbo.T3
After Insert
as
delete from T2 where col2 in(select col2 from Inserted)