在完成視圖定義后,可以在不除去和重新創(chuàng)建視圖的條件下更改視圖名稱或修改其定義,從而丟失與之相關(guān)聯(lián)的權(quán)限。在重命名視圖時,請遵循以下原則:
◆要重命名的視圖必須位于當(dāng)前數(shù)據(jù)庫中。
◆新名稱必須遵守標(biāo)識符規(guī)則。
◆只能重命名自己擁有的視圖。
數(shù)據(jù)庫所有者可以更改任何用戶視圖的名稱。
更改視圖并不影響相關(guān)對象,如存儲過程或觸發(fā)器,除非視圖定義的更改使該相關(guān)對象不再有效。例如,pubs 數(shù)據(jù)庫中 authors_view 視圖的定義方式如下:
CREATE VIEW authors_view AS SELECT au_id FROM authors |
存儲過程 authors_proc 的定義方式為:
CREATE PROC authors_proc
AS
SELECT au_id from authors_view |
對 authors_view 進行修改以檢索 au_lname 列而非 au_id:
ALTER VIEW authors_view
AS
SELECT au_lname FROM authors |
執(zhí)行時 authors_proc 將會失敗,因為視圖中 au_id 列已不復(fù)存在。
也可以修改視圖以對其定義進行加密,或確保所有在視圖上執(zhí)行的數(shù)據(jù)修改語句都符合定義視圖的 SELECT 語句中設(shè)定的條件。