簡體   English   中英

SQL Server 2008 中的觸發器

[英]Triggers in SQL Server 2008

我已經分別為 INSERT 和 UPDATE 創建了觸發器。 當在 Schema1 中進行插入時,觸發器將在 Schema2 中插入一行。 表:

  • Schema1.Temp1
  • Schema2.Temp2

觸發器創建成功。


但是當我在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM