◆如果在視圖定義中使用了WITHCHECKOPTION子句,則所有在視圖上執行的數據修改語句都必須符合定義視圖的SELECT語句中所設定的條件。如果使用了WITHCHECKOPTION子句,修改行時需注意不讓它們在修改完成后從視圖中消失。任何可能導致行消失的修改都會被取消,并顯示錯誤信息。
◆SQLServer必須能夠明確地解析對視圖所引用基表中的特定行所做的修改操作。不能在一個語句中對多個基礎表使用數據修改語句。因此,列在UPDATE或INSERT語句中的列必須屬于視圖定義中的同一個基表。
◆對于基礎表中需更新而又不允許空值的所有列,它們的值在INSERT語句或DEFAULT定義中指定。這將確保基礎表中所有需要值的列都可以獲取值。
◆在基礎表的列中修改的數據必須符合對這些列的約束,如為空性、約束、DEFAULT定義等。例如,如果要刪除一行,則相關表中的所有基礎FOREIGNKEY約束必須仍然得到滿足,刪除操作才能成功。
◆分布式分區視圖(遠程視圖)不能使用鍵集驅動游標更新。此項限制可通過在基礎表上而不在視圖本身上聲明游標得到解決。
此外,如果在視圖中刪除數據:
◆在視圖定義的FROM子句中只能列出一個表。
不能在視圖中與text、ntext或image列一起使用READTEXT和WRITETEXT語句。