通過視圖修改資料時所應掌握的基本準則

來源:互聯網
上載者:User

假如不使用INSTEAD OF觸發器或可更新分區視圖而是通過視圖來修改資料,那麼再修改之前,請考慮下列準則:

◆如果在視圖定義中使用了 WITH CHECK OPTION 子句,則所有在視圖上執行的資料修改語句都必須符合定義視圖的 SELECT 語句中所設定的條件。如果使用了 WITH CHECK OPTION 子句,修改行時需注意不讓它們在修改完成後從視圖中消失。任何可能導致行消失的修改都會被取消,並顯示錯誤資訊。

◆SQL Server 必須能夠明確地解析對視圖所引用基表中的特定行所做的修改操作。不能在一個語句中對多個基礎資料表使用資料修改語句。因此,列在 UPDATE 或 INSERT 語句中的列必須屬於視圖定義中的同一個基表。

◆對於基礎資料表中需更新而又不允許空值的所有列,它們的值在 INSERT 語句或 DEFAULT 定義中指定。這將確保基礎資料表中所有需要值的列都可以擷取值。

◆在基礎資料表的列中修改的資料必須符合對這些列的約束,如為空白性、約束、DEFAULT 定義等。例如,如果要刪除一行,則相關表中的所有基礎 FOREIGN KEY 約束必須仍然得到滿足,刪除操作才能成功。

◆分散式資料分割檢視(遠程視圖)不能使用鍵集驅動遊標更新。此項限制可通過在基礎資料表上而不在視圖本身上聲明遊標得到解決。

此外,如果在視圖中刪除資料:

◆在視圖定義的 FROM 子句中只能列出一個表。

不能在視圖中與text、ntext 或 image 列一起使用 READTEXT 和 WRITETEXT 語句。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.