ALTER VIEW

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Zmienia metadane skojarzone z widokiem. Może zmienić definicję widoku, zmienić nazwę widoku i ustawić lub nie ustawić metadanych przez ustawienie TBLPROPERTIES.

Aby dodać lub zmienić komentarz w widoku, użyj polecenia COMMENT ON.

Jeśli widok jest buforowany, polecenie czyści buforowane dane widoku i wszystkie jego zależności odwołujące się do niego. Pamięć podręczna widoku jest wypełniana z opóźnieniem, gdy widok będzie uzyskiwany do następnego dostępu. Polecenie pozostawia zależności widoku jako niebuforowane.

Wymagane uprawnienia

Jeśli używasz wykazu aparatu Unity, następujące operacje nie wymagają własności widoku:

  • SET TAGS: wymaga APPLY TAG uprawnień.
  • UNSET TAGS: wymaga APPLY TAG uprawnień.

Następujące operacje wymagają własności widoku:

  • SET TBLPROPERTIES
  • UNSET TBLPROPERTIES
  • AS query (zmień definicję widoku)
  • WITH SCHEMA (zmień powiązanie schematu)

RENAME TO MANAGE wymaga uprawnień w widoku.

W przypadku SET OWNER TOprogramu wymagane uprawnienia zależą od nowego właściciela:

  • Jeśli podmiot zabezpieczeń jest sam, musisz mieć MANAGE uprawnienia w widoku.
  • Jeśli podmiot zabezpieczeń jest grupą, musisz być członkiem tej grupy.
  • We wszystkich innych przypadkach musisz być administratorem magazynu metadanych.

Składnia

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

Parametry

  • view_name

    Identyfikuje widok, który ma zostać zmieniony. Jeśli nie można odnaleźć widoku, usługa Azure Databricks zgłasza błąd TABLE_OR_VIEW_NOT_FOUND .

  • ZMIEŃ NAZWĘ NA TO_VIEW_NAME

    Zmienia nazwę istniejącego widoku na to_view_name.

    W przypadku widoków Unity Catalog, to_view_name musi znajdować się w tym samym katalogu co view_name. W przypadku innych widoków, to_view_name musi być w tym samym schemacie co view_name.

    Jeśli to_view_name jest niekwalifikowany, jest niejawnie kwalifikowany przy użyciu bieżącego schematu.

    Nie można zmienić nazwy zmaterializowanych widoków.

  • SET TBLPROPERTIES

    Ustawia lub resetuje co najmniej jedną właściwości zdefiniowaną przez użytkownika.

  • UNSET TBLPROPERTIES

    Usuwa co najmniej jedną właściwości zdefiniowaną przez użytkownika.

  • Zapytanie AS

    Zapytanie, które konstruuje widok z tabel podstawowych lub innych widoków.

    AS query nie jest obsługiwana w przypadku widoków metryk.

    Ta klauzula jest równoważna instrukcji CREATE OR REPLACE VIEW w istniejącym widoku, z tą różnicą, że uprawnienia przyznane w widoku są zachowywane.

  • As yaml_definition

    Dotyczy:oznaczone jako tak Databricks SQL, oznaczone jako tak Databricks Runtime 16.4 i nowsze, oznaczone jako tak tylko katalog Unity

    Definicja YAML dla widoku metryki.

    Ta klauzula jest równoważna instrukcji CREATE OR REPLACE VIEW w istniejącym widoku, z tą różnicą, że uprawnienia przyznane w widoku są zachowywane.

    Ponowne określanie definicji YAML powoduje dodanie, porzucenie lub zmianę widoku parameters metryki bez żadnej zmiany składni. Aby uzyskać składnię parametrów, zobacz CREATE VIEW. Parametry wymagają środowiska Databricks Runtime 18.2 lub nowszego.

  • schema_binding

    Dotyczy:oznaczone jako tak Databricks SQL oznaczone jako tak Databricks Runtime 15.3 lub nowszy

    Określa, jak kolejne wykonywanie zapytań w widoku dostosowuje się do zmian w schemacie widoku ze względu na zmiany w definicjach obiektów bazowych. Zobacz CREATE VIEW... WITH SCHEMA , aby uzyskać szczegółowe informacje na temat trybów powiązań schematu.

    Ta klauzula nie jest obsługiwana w przypadku widoków metryk.

  • [ SET ] WŁAŚCICIEL DO głównego podmiotu

    Przenosi własność widoku na principal. Chyba że widok jest zdefiniowany w elemecie hive_metastore, można przenieść własność tylko do grupy, do której należysz.

    Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 11.3 LTS i nowsze

    SET jest dozwolone jako opcjonalne słowo kluczowe.

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

    Stosuje tagi do widoku. Musisz mieć uprawnienia do dodawania APPLY TAG tagów do widoku.

    Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 13.3 LTS i nowsze

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

    Usuwa tagi z widoku. Musisz APPLY TAG mieć uprawnienia do usuwania tagów z widoku.

    Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 13.3 LTS i nowsze

  • tag_name

    Literał STRING. Element tag_name musi być unikatowy w widoku.

  • tag_value

    Literał STRING.

Przykłady

-- 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']