ALTER VIEW

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert 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.

Wenn die Sicht zwischengespeichert wurde, löscht der Befehl zwischengespeicherte Daten der Sicht und alle abhängigen Daten, die darauf verweisen. Der Cache der Sicht wird verzögert gefüllt, wenn das nächste Mal auf die Sicht zugegriffen wird. Der Befehl speichert die abhängigen Elemente der Sicht nicht zwischen.

Syntax

ALTER [ MATERIALIZED ] VIEW view_name
  { rename |
    SET TBLPROPERTIES clause |
    UNSET TBLPROPERTIES clause |
    alter_body |
    owner_to |
    schedule
    SET TAGS clause |
    UNSET TAGS clause }}}

rename
  RENAME TO to_view_name

alter_body
  AS query

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

owner_to
  [ SET ] OWNER TO principal

schedule
  {
    { ADD | ALTER } SCHEDULE [ REFRESH ]
      CRON cron_string [ AT TIME ZONE timezone_id ] |
    DROP SCHEDULE
  }

Parameter

  • view_name

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

  • RENAME TO to_view_name

    Benennt die vorhandene Sicht innerhalb des Schemas um. Materialisierte Sichten können nicht umbenannt werden.

    to_view_name gibt den neuen Namen der Sicht an. Wenn to_view_name bereits vorhanden ist, wird TableAlreadyExistsException ausgelöst. Wenn to_view_name mit Qualifizierung angegeben wird, muss der Name mit dem Schemanamen von view_name übereinstimmen.

  • SET TBLPROPERTIES

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

  • UNSET TBLPROPERTIES

    Entfernt eine oder mehrere benutzerdefinierte Eigenschaften.

  • AS query

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

    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.

  • [ SET ] OWNER TO 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:Häkchen ja Databricks SQL Häkchen 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:Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime ab Version 13.3 LTS

  • 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:Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime ab Version 13.3 LTS

  • tag_name

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

  • tag_value

    Ein STRING-Literal.

  • SCHEDULE [ REFRESH ] CRON cron_string [ AT TIME ZONE timezone_id ]

    Ermöglicht es Ihnen, einer materialisierten Sicht einen Zeitplan hinzuzufügen oder den Zeitplan einer materialisierten Sicht zu ändern.

    Falls angegeben, legt dieser Parameter fest, dass die Daten der Streamingtabelle oder der materialisierten Sicht nach dem angegebenen quarz cron-Zeitplan aktualisiert werden. Es werden nur time_zone_values akzeptiert. AT TIME ZONE LOCAL wird nicht unterstützt. Fehlt AT TIME ZONE, wird die Sitzungszeitzone verwendet. Wenn AT TIME ZONE fehlt und die Sitzungszeitzone nicht festgelegt ist, wird ein Fehler ausgelöst. SCHEDULE ist semantisch äquivalent mit SCHEDULE REFRESH.

    Sie können die Syntax SCHEDULE nicht in einer Delta Live Tables-Pipelinedefinition verwenden.

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`

-- Adds a schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
    ADD SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Alters the schedule to run every 15 minutes for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE CRON '0 0/15 * * * ? *';

-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    DROP SCHEDULE;

-- 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');