SQL Server 2008中的触发器

问题描述

| 我已经分别为INSERT和UPDATE创建了触发器。在Schema1中进行插入时,触发器将在Schema2中插入一行。表格: 模式1.Temp1 模式2.Temp2 触发器创建成功。 但是当我在
Temp1
中插入数据时,它给我
Temp2
错误-复制密钥。
Temp2
还有另外两个表的约束。是什么原因引起的,如何解决?     

解决方法

        调用触发器时,尝试在Table2上写(如您所知)。 您尚未使用在Temp2中存在Temp1行的条件编写过INSERT查询的Peraph。 您的查询必须是以下类型:
INSERT INTO Table2 (field list)
SELECT field list
FROM inserted
WHERE NOT EXISTS(SELECT \'key\' in Table2 t2 where t2.id = inserted.field_of_key)
这样,您可以防止重复键,因此,如果您也想在插入中更新table2,则可以在该键已存在时编写UPDATE语句。 告诉我是否可以