[英]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.