2011-08-31 92 views
0

由於我是新的SQL Server,我的問題是我們可以更新視圖中的真實數據嗎?

  1. 我們可以更新的看法?

  2. 我們可以更新視圖中的真實表格數據嗎?

+1

一個視圖只是一個選擇表 - 一個視圖本身沒有「有」數據....如果你想更新數據 - 更新基礎表;一旦你這樣做,視圖將立即顯示這個更新的數據 –

回答

3

如果更新視圖,實際上您將更新基礎表。視圖不是物理的,只是它下面的數據表示。 它通常被認爲低於:

在大多數情況下,你可以,只要他們安裝,以滿足更新(http://msdn.microsoft.com/en-us/library/25614805(v=vs.80).aspx你可以閱讀更多有關啓用觀點的新聞點擊這裏)執行經更新視圖語句偉大的做法是這樣做的。它使事情變得非常複雜,所以你必須有一個很好的理由來這樣做。

+1

我的問題是,因爲你一次只能更新一個視圖中的一個表,因此你需要知道哪個視圖位於哪個表中,所以沒有意義直接更新表格。當您使用視圖將用戶限制在一個表中的數據的子集時,會出現異常情況。然後通過視圖更新是有意義的。 – HLGEM

1

可以通過更新視圖來更新基礎表數據。

這裏需要注意的一點是,只要基於一個表創建視圖,那麼直接「更新視圖」語句就可以工作。

但是,如果視圖是基於多個表創建的,那麼直接的Update語句將不起作用。我們需要在這些場景中使用「替代觸發器」。

+7

不完全正確。只要更新僅影響一個表,則可以基於多個表更新視圖。相反,View可以基於單個表格,但仍不可更新(例如,如果它包含「GROUP BY」) –

相關問題