Partager via


ALTER VIEW

S’applique à :coche marqué oui Databricks SQL coche marqué oui Databricks Runtime

Modifie les métadonnées associées à une vue. Elle peut modifier la définition d’une vue, renommer une vue et définir ou annuler les métadonnées en définissant TBLPROPERTIES.

Pour ajouter ou modifier un commentaire sur une vue, utilisez COMMENT ON.

Si l’affichage est mis en cache, la commande efface les données mises en cache de l’affichage et de tous les éléments dépendants qui y font référence. Le cache de la vue est rempli de manière différée lorsque l’affichage est ensuite accessible. La commande laisse les dépendants de l’affichage comme non mis en cache.

Privilèges requis

Si vous utilisez le catalogue Unity, les opérations suivantes ne nécessitent pas la propriété de l’affichage :

  • SET TAGS: nécessite le APPLY TAG privilège.
  • UNSET TAGS: nécessite le APPLY TAG privilège.

Les opérations suivantes nécessitent la propriété de la vue :

  • SET TBLPROPERTIES
  • UNSET TBLPROPERTIES
  • AS query (modifier la définition de la vue)
  • WITH SCHEMA (modifier la liaison de schéma)

RENAME TO nécessite le MANAGE privilège sur la vue.

Pour SET OWNER TO, les privilèges requis dépendent du nouveau propriétaire :

  • Si le principal est vous-même, vous devez avoir le MANAGE privilège sur la vue.
  • Si le principal est un groupe, vous devez être membre de ce groupe.
  • Dans tous les autres cas, vous devez être un administrateur de metastore.

Syntaxe

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

Paramètres

  • view_name

    Identifie l’affichage à modifier. Si la vue est introuvable, Azure Databricks génère une erreur TABLE_OR_VIEW_NOT_FOUND .

  • RENOMMER EN to_view_name

    Renomme l’affichage existant en to_view_name.

    Pour les vues Unity Catalog, le to_view_name doit se trouver dans le même catalogue que view_name. Pour les autres vues, le to_view_name doit se trouver dans le même schéma que view_name.

    Si to_view_name elle n’est pas qualifiée, elle est implicitement qualifiée avec le schéma actuel.

    Les vues matérialisées ne peuvent pas être renommées.

  • SET TBLPROPERTIES

    Définit ou redéfinit une ou plusieurs propriétés définies par l’utilisateur.

  • UNSET TBLPROPERTIES

    Supprime une ou plusieurs propriétés définies par l’utilisateur.

  • AS Requête

    Requête qui construit l’affichage à partir de tables de base ou d’autres affichages.

    AS query n’est pas pris en charge pour les vues métriques.

    Cette clause équivaut à une instruction CREATE OR REPLACE VIEW sur une vue existante, sauf que les privilèges accordés sur la vue sont conservés.

  • AS yaml_definition

    S’applique à :coche marqué oui Databricks SQL coche marqué oui Databricks Runtime 16.4 et versions ultérieures coche marqué oui Unity Catalog uniquement

    Un yaml_definition pour une vue métrique.

    Cette clause équivaut à une instruction CREATE OR REPLACE VIEW sur une vue existante, sauf que les privilèges accordés sur la vue sont conservés.

  • schema_binding

    S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 15.3 et versions ultérieures

    Spécifie comment l’interrogation ultérieure de la vue s’adapte aux modifications apportées au schéma de la vue en raison des modifications apportées aux définitions d’objets sous-jacentes. Pour plus de détails sur les modes de liaison des schémas, consultez CREATE VIEW... WITH SCHEMA.

    Cette clause n'est pas prise en charge pour les vues métriques.

  • [ SET ] PROPRIÉTAIRE À principal

    Transfère la propriété de l’affichage à principal. Sauf si la vue est définie dans le hive_metastorefichier , vous ne pouvez transférer la propriété qu’à un groupe auquel vous appartenez.

    S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 11.3 LTS et versions ultérieures

    SET est autorisé en tant que mot clé facultatif.

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

    Applique des balises à la vue. Vous avez besoin du APPLY TAG privilège d’ajouter des balises à la vue.

    S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 13.3 LTS et versions ultérieures

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

    Supprime les balises de la vue. Vous avez besoin du APPLY TAG privilège de supprimer les balises de la vue.

    S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 13.3 LTS et versions ultérieures

  • tag_name

    Un STRING littéral. Le tag_name doit être unique dans la vue.

  • tag_value

    Un STRING littéral.

Exemples

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