回覆列表
  • 1 # 使用者5147634925370

    可更新檢視有以下三條規則:

    (1) 若檢視是基於多個表使用聯接操作而匯出的,那麼對這個檢視執行更新操作時,每次只能影響其中的一個表。

    (2) 若檢視匯出時包含有分組和聚合操作,則不允許對這個檢視執行更新操作。

    (3) 若檢視是從一個表經選擇、投影而匯出的,並在檢視中包含了表的主鍵字或某個候選鍵,這類檢視稱為‘行列子集檢視’。對這類檢視可執行更新操作。

    另外,關於可更新檢視的一些更具體的描述如下:

    如果檢視沒有INSTEAD OF觸發器,或者檢視不是分割槽檢視,則檢視只有滿足下列條件才可更新:

    select語句在選擇列表中沒有聚合函式,也不包含TOP,GROUP BY,UNION(除非檢視是分割槽檢視)或DISTINCT子句。聚合函式可以用在FROM子句的子查詢中,只要不修改函式返回的值。

    select語句的選擇列表中沒有派生列。派生列是由任何非簡單列表達式(使用函式、加法或減法運算子等)所構成的結果集列。

    select語句中的FROM子句至少引用一個表。select語句不能只包含非表格格式的表示式(即不是從表派生出的表示式)。

    INSERT, UPDATE和DELETE語句在引用可更新檢視之前,也必須如上述條件指定的那樣滿足某些限制條件。只有當檢視可更新,並且所編寫的UPDATE或 INSERT語句只修改檢視的FROM子句引用的一個基表中的資料時,UPDATE和INSERT語句才能引用檢視。只有當檢視在其FROM子句中只引用一個表時,DELETE語句才能引用可更新的檢視。

  • 中秋節和大豐收的關聯?
  • 傳說七夕前後三天看不到喜鵲,因為都到天河搭橋去了,你的家鄉有這樣的民間傳說嗎?