2011-03-09 58 views
1

可以使用單個視圖同時向三個表格中插入數據。 am使用視圖從最終用戶抽象我的數據庫實際表,以直接插入數據到他們。 該視圖將充當我實際表的保護層。 但我有3個表,並希望在其中插入數據。使用視圖,抽象實際表格,使用視圖更新多個表格

但由於視圖不能用於修改多個表。所以這是什麼解決方案?

我需要創建3個不同的視圖和運行:

Insert into View1 values() 
Insert into View2 values() 
Insert into View3 values() 
+3

視圖可以更新,但有限制。我認爲你最好將插入邏輯放入存儲過程中。 – 2011-03-09 06:50:48

+0

@OMG小馬:親愛的夫人,你的意思是說,我將創建一個過程,並簡單地給它插入查詢。而已。或者是否存在某種複雜的代碼? – sqlchild 2011-03-14 05:37:05

+1

您提到了三個要插入的表,所以在存儲過程中應該有三個INSERT。如果需要的話,它會支持額外的邏輯。 – 2011-03-14 06:01:07

回答

4

如果你想更新從單一視圖多個表,你可能需要創建一個或多個* INSTEAD OFtriggers上風景。然後,您可以使用inserteddeleted僞表製作應該應用於每個基表的插入/更新/刪除。

*如果在插入和更新視圖的過程中存在很多共同點,我建議爲這兩者添加一個觸發器。如果操作非常不同,我建議保持觸發器分離。