精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

  • 相關(guān)軟件
    >ALTER VIEW 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    更改一個先前創(chuàng)建的視圖(用 CREATE VIEW 創(chuàng)建),包括索引視圖,但不影響相關(guān)的存儲過程或觸發(fā)器,也不更改權(quán)限。有關(guān) ALTER VIEW 語句中所用參數(shù)的更多信息,請參見 CREATE VIEW



    語法


    ALTER VIEW [ < database_name > .] [ < owner > .] view_name [ ( column [ ,...n ] ) ]

    [ WITH < view_attribute > [ ,...n ] ]

    AS

        select_statement

    [ WITH CHECK OPTION ]



    < view_attribute > ::=


        { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }



    參數(shù)


    view_name



    是要更改的視圖。



    column



    是一列或多列的名稱,用逗號分開,將成為給定視圖的一部分。



    重要  只有在 ALTER VIEW 執(zhí)行前后列名稱不變的情況下,列上的權(quán)限才會保持不變。



    說明  在視圖的各列中,列名的權(quán)限在 CREATE VIEW 或 ALTER VIEW 語句間均適用,與基礎(chǔ)數(shù)據(jù)源無關(guān)。例如,如果授予了 CREATE VIEW 語句中 title_id 列上的權(quán)限,那么 ALTER VIEW 語句可以將 title_id 列改名(例如改為 qty),但權(quán)限仍與使用 title_id 的視圖上的權(quán)限相同。



    n



    是表示 column 可重復 n 次的占位符。



    WITH ENCRYPTION



    加密 syscomments 表中包含 ALTER VIEW 語句文本的條目。使用 WITH ENCRYPTION 可防止將視圖作為 SQL Server 復制的一部分發(fā)布。



    SCHEMABINDING



    將視圖綁定到架構(gòu)上。指定 SCHEMABINDING 時,select_statement 必須包含由所引用的表、視圖或用戶定義函數(shù)組成的兩部分名稱 (owner.object)。



    不能除去參與到用架構(gòu)綁定子句創(chuàng)建的視圖中的視圖或表,除非該視圖已被除去或更改而不再具有架構(gòu)綁定。否則,SQL Server 會產(chǎn)生錯誤。另外,對于參與具有架構(gòu)綁定的視圖的表,如果其上的 ALTER TABLE 語句影響了該視圖的定義,則這些語句將會失敗。



    VIEW_METADATA



    在為引用視圖的查詢請求瀏覽模式元數(shù)據(jù)時,指定 SQL Server 將向 DBLIB、ODBC 和 OLE DB API 返回有關(guān)視圖的元數(shù)據(jù)信息,而不是返回基表或表。瀏覽模式元數(shù)據(jù)是由 SQL Server 向客戶端 DB-LIB、ODBC 和 OLE DB API 返回的附加元數(shù)據(jù),它允許客戶端 API 實現(xiàn)可更新的客戶端游標。瀏覽模式元數(shù)據(jù)包含有關(guān)結(jié)果集內(nèi)的列所屬基表的信息。



    對于用 VIEW_METADATA 選項創(chuàng)建的視圖,當在結(jié)果集中描述視圖內(nèi)的列時,瀏覽模式元數(shù)據(jù)返回相對于基表名的視圖名。



    當用 VIEW_METADATA 創(chuàng)建視圖時,如果該視圖具有 INSERT 或 UPDATE INSTEAD OF 觸發(fā)器,則視圖的所有列(timestamp 除外)都是可更新的。請參見 CREATE VIEW 中的"可更新視圖"。



    AS



    是視圖要執(zhí)行的操作。



    select_statement



    是定義視圖的 SELECT 語句。



    WITH CHECK OPTION



    強制視圖上執(zhí)行的所有數(shù)據(jù)修改語句都必須符合由定義視圖的 select_statement 設(shè)置的準則。



    注釋


    有關(guān) ALTER VIEW 的更多信息,請參見 CREATE VIEW 中的注釋。



    說明  如果原來的視圖定義是用 WITH ENCRYPTION 或 CHECK OPTION 創(chuàng)建的,那么只有在 ALTER VIEW 中也包含這些選項時,這些選項才有效。



    如果使用 ALTER VIEW 更改當前正在使用的視圖,Microsoft® SQL Server™ 將在該視圖上放一個排它架構(gòu)鎖。當鎖已授予,并且該視圖沒有活動用戶時,SQL Server 將從過程緩存中刪除該視圖的所有復本。引用該視圖的現(xiàn)有計劃將繼續(xù)保留在緩存中,但當喚醒調(diào)用時將重新編譯。



    ALTER VIEW 可應用于索引視圖。然而,ALTER VIEW 將無條件地除去視圖上的所有索引。



    權(quán)限


    ALTER VIEW 的權(quán)限默認地授予 db_owner db_ddladmin 固定數(shù)據(jù)庫角色的成員,以及視圖所有者。這些權(quán)限是不可傳遞的。



    若要更改視圖,用戶必須具有 ALTER VIEW 權(quán)限,并且對視圖中引用的表、視圖和表值函數(shù)具有 SELECT 權(quán)限,對視圖中調(diào)用的標量值函數(shù)具有 EXECUTE 權(quán)限。



    此外,用戶若要更改視圖 WITH SCHEMABINDING,則必須對每一個引用的表、視圖和用戶定義函數(shù)具有 REFERENCES 權(quán)限。



    示例


    A. 更改視圖


    下例創(chuàng)建稱為 All_authors 的視圖,該視圖包含全部的作者。權(quán)限授予了視圖,但需求改為從猶他州選擇作者。于是,使用 ALTER VIEW 替換了該視圖。



    -- Create a view from the authors table that contains all authors.
    CREATE VIEW All_authors (au_fname, au_lname, address, city, zip)
    AS
    SELECT au_fname, au_lname, address, city, zip
    FROM pubs..authors
    GO
    -- Grant SELECT permissions on the view to public.
    GRANT SELECT ON All_authors TO public
    GO
    -- The view needs to be changed to include all authors
    -- from Utah.
    -- If ALTER VIEW is not used but instead the view is dropped and
    -- re-created, the above GRANT statement and any other statements
    -- dealing with permissions that pertain to this view
    -- must be re-entered.
    ALTER VIEW All_authors (au_fname, au_lname, address, city, zip)
    AS
    SELECT au_fname, au_lname, address, city, zip
    FROM pubs..authors
    WHERE state = 'UT'
    GO


    B. 在視圖中使用 @@ROWCOUNT 函數(shù)


    下例使用 @@ROWCOUNT 函數(shù)作為視圖定義的一部分。



    USE pubs
    GO
    CREATE VIEW yourview
    AS
      SELECT title_id, title, mycount = @@ROWCOUNT, ytd_sales
      FROM titles
    GO
    SELECT *
    FROM yourview
    GO
    -- Here, the view is altered.
    USE pubs
    GO
    ALTER VIEW yourview
    AS
      SELECT title, mycount = @@ ROWCOUNT, ytd_sales
      FROM titles
      WHERE type = 'mod_cook'
    GO
    SELECT *
    FROM yourview
    GO
    相關(guān)文章
    本頁查看次數(shù):