簡體   English   中英

多表觸發更新/刪除/插入

[英]Multiple Table Trigger Update/Delete/Insert

我遇到了創建SQL Server觸發器以實現我想要的操作的麻煩。 我對觸發器沒有多少經驗。

基本上我有一個表,我們稱之為cluster_metadata ,其元數據描述了對象的某些屬性。 然后我有第二個表,讓我們稱之為activities_table ,用戶輸入的數據可能與cluster_metadata表中的某些對象有關。

cluster_metadata表是用戶可更新的,但是使用存儲過程創建和刪除新行,用戶只能更新特定值。

activities_table完全由用戶驅動,用戶可以插入/修改和刪除行。

我需要一個連接數據的觸發器,並在cluster_metadataactivities_table任何修改時更新表。

為簡單起見,我已經減少了列數,但表格看起來像這樣。

cluster_metadata

+----------------------------------+
|  Cluster  |  Eligible  |  Group  |
+----------------------------------+
|  Cluster1 |    True    |    1    |
|  Cluster2 |    True    |    1    |
|  Cluster3 |    True    |    2    |
|  Cluster4 |    False   |    2    |
|  Cluster5 |    True    |    3    |
|  Cluster6 |    True    |    4    |
+----------------------------------+

activities_table

+--------------------------------------------+
|  Activity  |  ID  |  Group  |  Start Date  |
+--------------------------------------------+
|  Patches   | 1000 |    1    |  02-01-2015  |
|  Patches   | 1000 |    2    |  02-10-2015  |
|  Patches   | 1000 |    3    |  02-20-2015  |
|SomeActivity| 1001 |    2    |  02-30-2015  |
+--------------------------------------------+

我需要創建並保持更新的表使用上面兩個表中的數據看起來像這樣:

+---------------------------------------------------------------------+
|  Cluster  |  Eligible  |  Group  |  Activity  |  ID  |  Start Date  |
+---------------------------------------------------------------------+
|  Cluster1 |    True    |    1    |  Patches   | 1000 |  02-01-2015  |
|  Cluster2 |    True    |    1    |  Patches   | 1000 |  02-01-2015  |
|  Cluster3 |    True    |    2    |  Patches   | 1000 |  02-10-2015  |
|  Cluster3 |    True    |    2    |SomeActivity| 1001 |  02-30-2015  |
|  Cluster4 |    True    |    2    |  Patches   | 1000 |  02-10-2015  |
|  Cluster4 |    True    |    2    |SomeActivity| 1001 |  02-30-2015  |
|  Cluster5 |    True    |    3    |  Patches   | 1000 |  02-20-2015  |
+---------------------------------------------------------------------+

我如何創建一個可以執行此操作的觸發器? 我只是創建一個視圖,但我需要使用這個合並數據接受一些用戶額外的輸入。

謝謝!

感謝你的幫助。 基本上我最終做的是使用來自cluster_metadataactivities_table的數據創建一個聯合視圖。 從那里我編寫了一個存儲過程,該過程接收適當的數據並插入到第三個表中。 該過程還確保更新所有數據並與每次執行時的視圖匹配。 每當用戶從Web UI向任一表輸入任何內容時,我都會運行該過程。 不是最好的解決方案,但它正在發揮作用。

感謝大家!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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