Delen via


ALTER VIEW

Van toepassing op:controleren gemarkeerd ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

Hiermee worden metagegevens gewijzigd die zijn gekoppeld aan een weergave. Het kan de definitie van een weergave wijzigen, de naam van een weergave wijzigen en metagegevens instellen of opheffen door de instelling in te stellen TBLPROPERTIES.

Als u een opmerking aan een weergave wilt toevoegen of wijzigen, gebruikt u COMMENT ON.

Als de weergave in de cache is opgeslagen, worden met de opdracht gegevens in de cache van de weergave en alle afhankelijke items gewist die ernaar verwijzen. De cache van de weergave wordt lazily gevuld wanneer de weergave weer wordt geopend. Met de opdracht blijven de afhankelijke items van de weergave ongewijzigd.

Vereiste bevoegdheden

Als u Unity Catalog gebruikt, zijn voor de volgende bewerkingen geen eigendom van de weergave vereist:

  • SET TAGS: Vereist de APPLY TAG bevoegdheid.
  • UNSET TAGS: Vereist de APPLY TAG bevoegdheid.

Voor de volgende bewerkingen is het eigendom van de weergave vereist:

  • SET TBLPROPERTIES
  • UNSET TBLPROPERTIES
  • AS query (weergavedefinitie wijzigen)
  • WITH SCHEMA (schemabinding wijzigen)

RENAME TO vereist de MANAGE bevoegdheid voor de weergave.

Voor SET OWNER TO, de vereiste bevoegdheden zijn afhankelijk van de nieuwe eigenaar:

  • Als de principal uzelf is, moet u over de MANAGE bevoegdheid beschikken voor de weergave.
  • Als de principal een groep is, moet u lid zijn van die groep.
  • In alle andere gevallen moet u een metastore-beheerder zijn.

Syntaxis

ALTER VIEW view_name
  { rename |
    SET TBLPROPERTIES clause |
    UNSET TBLPROPERTIES clause |
    alter_body |
    schema_binding |
    owner_to |
    SET TAGS clause |
    UNSET TAGS clause }

rename
  RENAME TO to_view_name

alter_body
  AS { query | yaml_definition }

yaml_definition
  $$
    yaml_string
  $$

schema_binding
  WITH SCHEMA { BINDING | [ TYPE ] EVOLUTION | COMPENSATION }

property_key
  { identifier [. ...] | string_literal }

owner_to
  [ SET ] OWNER TO principal

Parameterwaarden

  • view_name

    Identificeert de weergave die moet worden gewijzigd. Als de weergave niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND fout.

  • NAAM WIJZIGEN IN to_view_name

    Wijzigt de naam van de bestaande weergave in to_view_name.

    Voor Unity Catalog-weergaven moet deze to_view_name zich in dezelfde catalogus bevinden als view_name. Voor andere weergaven moet het to_view_name zich binnen hetzelfde schema bevinden als view_name.

    Als to_view_name deze niet-gekwalificeerde is, wordt deze impliciet gekwalificeerd met het huidige schema.

    Gerealiseerde weergaven kunnen niet worden gewijzigd.

  • SET TBLPROPERTIES

    Hiermee stelt u een of meer door de gebruiker gedefinieerde eigenschappen in of stelt u deze opnieuw in.

  • VERWIJDER TBLPROPERTIES

    Hiermee verwijdert u een of meer door de gebruiker gedefinieerde eigenschappen.

  • AS-zoekopdracht

    Een query waarmee de weergave wordt samengesteld op basistabellen of andere weergaven.

    AS query wordt niet ondersteund voor metrische weergaven.

    Deze component is gelijk aan een CREATE OR REPLACE VIEW-instructie voor een bestaande weergave, behalve dat de bevoegdheden die voor de weergave zijn verleend, behouden blijven.

  • AS-yaml_definition

    Van toepassing op:aanvinkteken ja Databricks SQL aanvinkteken ja Databricks Runtime 16.4 en hoger aanvinkteken ja alleen Unity Catalog

    Een yaml_definition voor een metrische weergave.

    Deze component is gelijk aan een CREATE OR REPLACE VIEW-instructie voor een bestaande weergave, behalve dat de bevoegdheden die voor de weergave zijn verleend, behouden blijven.

  • schema_binding

    Van toepassing op:aangevinkt ja Databricks SQL aangevinkt ja Databricks Runtime 15.3 en hoger

    Hiermee geeft u op hoe volgende query's van de weergave worden aangepast aan wijzigingen in het schema van de weergave vanwege wijzigingen in de onderliggende objectdefinities. Zie CREATE VIEW... MET SCHEMA voor meer informatie over schemabindingsmodi.

    Deze component wordt niet ondersteund voor metrische weergaven.

  • [ SET ] EIGENAAR AAN principal

    Draagt het eigendom van de weergave over naar principal. Tenzij de weergave is gedefinieerd in de hive_metastoreweergave, kunt u alleen het eigendom overdragen aan een groep waartoe u behoort.

    Van toepassing op:aangevinkt ja Databricks SQL aangevinkt ja Databricks Runtime 11.3 LTS en hoger

    SET is toegestaan als een optioneel trefwoord.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Hiermee past u tags toe op de weergave. U hebt de APPLY TAG bevoegdheid nodig om tags toe te voegen aan de weergave.

    Van toepassing op:aangevinkt ja Databricks SQL aangevinkt ja Databricks Runtime 13.3 LTS en hoger

  • UNSET TAGS ( tag_name [, ...] )

    Hiermee verwijdert u tags uit de weergave. U hebt de APPLY TAG bevoegdheid nodig om tags uit de weergave te verwijderen.

    Van toepassing op:aangevinkt ja Databricks SQL aangevinkt ja Databricks Runtime 13.3 LTS en hoger

  • tag_name

    Een letterlijke .STRING De tag_name naam moet uniek zijn in de weergave.

  • tag_value

    Een letterlijke .STRING

Voorbeelden

-- Rename only changes the view name.
-- The source and target schemas of the view must be the same.
-- Use qualified or unqualified name for the source and target view.
> ALTER VIEW tempsc1.v1 RENAME TO tempsc1.v2;

-- Verify that the new view is created.
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1       int   NULL
                            c2    string   NULL

  # Detailed Table Information
                      Database   tempsc1
                         Table        v2

-- Before ALTER VIEW SET TBLPROPERTIES
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1       int   null
                            c2    string   null

  # Detailed Table Information
                      Database   tempsc1
                         Table        v2
              Table Properties    [....]

-- Set properties in TBLPROPERTIES
> ALTER VIEW tempsc1.v2 SET TBLPROPERTIES ('created.by.user' = "John", 'created.date' = '01-01-2001' );

-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1                                                   int   NULL
                            c2                                                string   NULL

  # Detailed Table Information
                      Database                                               tempsc1
                         Table                                                    v2
              Table Properties [created.by.user=John, created.date=01-01-2001, ....]

-- Remove the key created.by.user and created.date from `TBLPROPERTIES`
> ALTER VIEW tempsc1.v2 UNSET TBLPROPERTIES (`created`.`by`.`user`, created.date);

-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify the changes
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1       int   NULL
                            c2    string   NULL

  # Detailed Table Information
                      Database   tempsc1
                         Table        v2
              Table Properties    [....]

-- Change the view definition
> ALTER VIEW tempsc1.v2 AS SELECT * FROM tempsc1.v1;

-- Use `DESCRIBE TABLE EXTENDED` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1                        int   NULL
                            c2                     string   NULL

  # Detailed Table Information
                      Database                    tempsc1
                         Table                         v2
                          Type                       VIEW
                     View Text   select * from tempsc1.v1
            View Original Text   select * from tempsc1.v1

-- Transfer ownership of a view to another user
> ALTER VIEW v1 OWNER TO `alf@melmak.et`

-- Change the view schema binding to adopt type evolution
> ALTER VIEW v1 WITH SCHEMA TYPE EVOLUTION;

-- Apply three tags to the view named `test`.
> ALTER VIEW test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');

-- Remove three tags from the view named `test`.
> ALTER VIEW test UNSET TAGS ('tag1', 'tag2', 'tag3');

-- Alter the metric view `region_sales_metrics` defined in CREATE VIEW
-- to drop the `total_revenue_for_open_orders` measure.
> ALTER VIEW region_sales_metrics
  AS $$
   version: 0.1
   source: samples.tpch.orders
   filter: o_orderdate > '1990-01-01'
   dimensions:
   - name: month
     expr: date_trunc('MONTH', o_orderdate)
   - name: status
     expr: case
       when o_orderstatus = 'O' then 'Open'
       when o_orderstatus = 'P' then 'Processing'
       when o_orderstatus = 'F' then 'Fulfilled'
       end
   - name: order_priority
     expr: split(o_orderpriority, '-')[1]
   measures:
   - name: count_orders
     expr: count(1)
   - name: total_revenue
     expr: SUM(o_totalprice)
   - name: total_revenue_per_customer
     expr: SUM(o_totalprice) / count(distinct o_custkey)
  $$;

> DESCRIBE EXTENDED region_sales_metrics;
 col_name                    data_type
 month                       timestamp
 status                      string
 order_priority              string
 count_orders                bigint measure
 total_revenue               decimal(28,2) measure
 total_revenue_per_customer  decimal(38,12) measure

 # Detailed Table Information
 Catalog                     main
 Database                    default
 Table                       region_sales_metrics
 Owner                       alf@melmak.et
 Created Time                Sun May 18 23:45:25 UTC 2025
 Last Access                 UNKNOWN
 Created By                  Spark
 Type                        METRIC_VIEW
 Comment                     A metric view for regional sales metrics.
 View Text                   "
    version: 0.1
    source: samples.tpch.orders
    filter: o_orderdate > '1990-01-01'
    dimensions:
    - name: month
      expr: date_trunc('MONTH', o_orderdate)
    - name: status
      expr: case
        when o_orderstatus = 'O' then 'Open'
        when o_orderstatus = 'P' then 'Processing'
        when o_orderstatus = 'F' then 'Fulfilled'
        end
    - name: order_priority
      expr: split(o_orderpriority, '-')[1]
    measures:
    - name: count_orders
      expr: count(1)
    - name: total_revenue
      expr: SUM(o_totalprice)
    - name: total_revenue_per_customer
      expr: SUM(o_totalprice) / count(distinct o_custkey)
   "
 Language                    YAML
 Table Properties            [metric_view.from.name=samples.tpch.orders, metric_view.from.type=ASSET, metric_view.where=o_orderdate > '1990-01-01']