[英]Triggers in SQL Server 2008
我已经分别为 INSERT 和 UPDATE 创建了触发器。 当在 Schema1 中进行插入时,触发器将在 Schema2 中插入一行。 表:
触发器创建成功。
但是当我在Temp1
中插入数据时,它给了我Temp2
的错误——重复键。 Temp2
对另外两个表有约束。 是什么原因造成的,如何解决?
当您的触发器被调用时,请尝试在 Table2 上写入(如您所说)。
您还没有使用 Temp2 中存在 Temp1 行的条件编写 INSERT 查询。
您的查询必须是这种类型:
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 语句。
告诉我是否可以
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.