Bagikan melalui


ALTER VIEW

Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime

Mengubah metadata yang terkait dengan tampilan. Ini dapat mengubah definisi tampilan, mengubah nama tampilan menjadi nama yang berbeda, mengatur dan menghentikan pengaturan metadata tampilan dengan mengatur TBLPROPERTIES.

Untuk menambahkan atau mengubah komentar pada tampilan, gunakan COMMENT ON.

Jika tampilan dicache, perintah menghapus data cache dari tampilan dan semua tanggungannya yang merujuk kepadanya. Cache tampilan akan diisi seperlunya saat tampilan diakses berikutnya. Perintah meninggalkan dependen tampilan sebagai tidak di-cache.

Sintaks

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

    Mengidentifikasi tampilan yang akan diubah. Jika tampilan tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .

  • GANTI NAMA MENJADI to_view_name

    Mengganti nama tampilan yang ada menjadi to_view_name.

    Untuk tampilan Katalog Unity, to_view_name harus berada dalam katalog yang sama dengan view_name. Untuk tampilan lain, to_view_name harus berada dalam skema yang sama dengan view_name.

    Jika to_view_name tidak memenuhi syarat, secara implisit memenuhi syarat dengan skema saat ini.

    Tampilan materialisasi tidak dapat diganti nama.

    Mengatur satu atau beberapa properti yang ditentukan pengguna.

  • HAPUS PENGATURAN TBLPROPERTIES

    Menghapus satu atau beberapa properti yang ditentukan pengguna.

  • AS Kueri

    Kueri yang membuat tampilan dari tabel dasar atau tampilan lainnya.

    AS query tidak didukung untuk tampilan metrik.

    Klausa ini setara dengan pernyataan CREATE OR REPLACE VIEW pada tampilan yang ada, kecuali bahwa hak istimewa yang diberikan pada tampilan dipertahankan.

  • AS yaml_definition

    Berlaku untuk:ditandai ya Databricks SQL ditandai ya Databricks Runtime 16.4 ke atas ditandai ya Unity Catalog saja

    Definisi YAML untuk tampilan metrik.

    Klausa ini setara dengan pernyataan CREATE OR REPLACE VIEW pada tampilan yang ada, kecuali bahwa hak istimewa yang diberikan pada tampilan dipertahankan.

  • schema_binding

    Berlaku untuk:tercentang ya Databricks SQL tercentang ya Databricks Runtime 15.3 ke atas

    Menentukan bagaimana kueri tampilan berikutnya beradaptasi dengan perubahan pada skema tampilan karena perubahan dalam definisi objek yang mendasar. Lihat CREATE VIEW... WITH SCHEMA untuk detail tentang mode pengikatan skema.

    Klausa ini tidak didukung untuk tampilan metrik.

  • [ SET ] PEMILIK UNTUK penanggung jawab utama

    Memindahkan kepemilikan tampilan ke principal. Kecuali tampilan ditentukan dalam hive_metastore, Anda hanya dapat mentransfer kepemilikan ke grup tempat Anda berada.

    Berlaku untuk:ditandai ya Databricks SQL ditandai ya Databricks Runtime 11.3 LTS dan ke atas

    SET diperbolehkan sebagai kata kunci opsional.

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

    Terapkan tag ke tampilan. Anda harus memiliki APPLY TAG izin untuk menambahkan tag ke tampilan.

    Berlaku untuk:ditandai ya Databricks SQL ditandai ya Databricks Runtime 13.3-LTS ke atas

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

    Menghapus tag dari tabel. Anda harus memiliki izin APPLY TAG untuk menghapus tag dari tampilan.

    Berlaku untuk:ditandai ya Databricks SQL ditandai ya Databricks Runtime 13.3-LTS ke atas

  • tag_name

    Harfiah STRING. tag_name harus unik dalam tampilan.

  • tag_value

    Harfiah STRING.

Contoh

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