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