Freigeben über


ALTER VIEW

Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime

Ändert Metadaten, die der Sicht zugeordnet sind. Es ist möglich, die Definition der Sicht zu ändern, eine Sicht umzubenennen sowie durch Festlegen von TBLPROPERTIES die Metadaten der Sicht festzulegen bzw. die festgelegten Metadaten der Sicht zu löschen.

Um einen Kommentar zu einer Ansicht hinzuzufügen oder zu ändern, verwenden Sie COMMENT ON.

Wenn die Sicht zwischengespeichert wurde, löscht der Befehl zwischengespeicherte Daten der Sicht und alle abhängigen Daten, die darauf verweisen. Der Cache der Ansicht wird erst beim nächsten Zugriff automatisch gefüllt. Der Befehl verlässt die Abhängigkeiten der Ansicht als nicht zwischengespeichert.

Syntax

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
  { idenitifier [. ...] | string_literal }

owner_to
  [ SET ] OWNER TO principal

Parameter

  • view_name

    Gibt die Sicht an, die geändert werden soll. Wenn die Ansicht nicht gefunden werden kann, löst Azure Databricks einen TABLE_OR_VIEW_NOT_FOUND Fehler aus.

  • IN TO_VIEW_NAME UMBENENNEN

    Benennt die vorhandene Ansicht in to_view_nameum

    Für Unity-Katalogansichten muss sich die to_view_name Ansicht innerhalb desselben Katalogs befinden wie view_name. Für andere Ansichten muss sich dies to_view_name innerhalb desselben Schemas wie view_name.

    Wenn to_view_name nicht qualifiziert ist, wird es implizit mit dem aktuellen Schema qualifiziert.

    Materialisierte Sichten können nicht umbenannt werden.

    Legt eine oder mehrere benutzerdefinierte Eigenschaften fest oder setzt diese zurück.

  • UNSET TBLPROPERTIES

    Entfernt eine oder mehrere benutzerdefinierte Eigenschaften.

  • AS-Abfrage

    Eine Abfrage, die die Sicht aus Basistabellen oder anderen Sichten erstellt.

    AS query wird für Metrikansichten nicht unterstützt.

    Diese Klausel entspricht einer CREATE OR REPLACE VIEW-Anweisung für eine vorhandene Ansicht, mit der Ausnahme, dass Berechtigungen, die für die Ansicht gewährt werden, beibehalten werden.

  • AS yaml_definition

    Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime 16.4 und höher mit Häkchen markiert ja nur Unity Catalog

    Eine yaml_definition für eine Metrikansicht.

    Diese Klausel entspricht einer CREATE OR REPLACE VIEW-Anweisung für eine vorhandene Ansicht, mit der Ausnahme, dass Berechtigungen, die für die Ansicht gewährt werden, beibehalten werden.

  • Schema-Bindung

    Gilt für:mit einem Häkchen markiert: ja Databricks SQL mit einem Häkchen markiert: ja Databricks Runtime 15.3 und höher

    Gibt an, wie sich die nachfolgende Abfrage der Ansicht an Änderungen am Schema der Ansicht aufgrund von Änderungen in den zugrunde liegenden Objektdefinitionen anpasst. Siehe CREATE VIEW... WITH SCHEMA für Details zu Schemabindungsmodi.

    Diese Klausel wird für Metrikansichten nicht unterstützt.

  • [ SET ] EIGENTÜMER ZU principal

    Überträgt den Besitz der Sicht an principal. Wenn die Sicht nicht in hive_metastore definiert ist, können Sie den Besitz nur auf eine Gruppe übertragen, der Sie angehören.

    Gilt für:Grünes Häkchen für „Ja“ Databricks SQL Grünes Häkchen für „Ja“ Databricks Runtime 11.3 LTS und höher

    SET ist als optionales Schlüsselwort zulässig.

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

    Wenden Sie Tags auf die Ansicht an. Sie benötigen die Berechtigung APPLY TAG, um Tags zur Ansicht hinzufügen zu können.

    Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime 13.3 LTS und höher

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

    Entfernen Sie Tags aus der Tabelle. Sie benötigen die Berechtigung APPLY TAG, um Tags aus der Ansicht entfernen zu können.

    Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime 13.3 LTS und höher

  • tag_name

    Ein STRING-Literal. tag_name muss innerhalb der Ansicht eindeutig sein.

  • tag_value

    Ein STRING-Literal.

Beispiele

-- Rename only changes the view name.
-- The source and target schemas of the view have to 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;

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

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

-- Alter a 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
 prder_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: prder_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']