CREATE TAG

Erstellt ein neues Tag oder ersetzt ein bestehendes Tag im System.

Darüber hinaus unterstützt dieser Befehl die folgenden Varianten:

  • CREATE OR ALTER TAG: Erstellt ein Tag, wenn es nicht existiert, oder ändert ein bestehendes Tag.

Siehe auch:

ALTER TAG, SHOW TAGS, DROP TAG, UNDROP TAG

Syntax

CREATE [ OR REPLACE ] TAG [ IF NOT EXISTS ] <name>
    [ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
    [ PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
      [ ON_CONFLICT = { '<string>' | ALLOWED_VALUES_SEQUENCE } ] ]
    [ COMMENT = '<string_literal>' ]
Copy

Wichtig

Der Parameter ALLOWED_VALUES muss immer vor allen anderen Parametern, wie COMMENT, festgelegt werden, damit ALLOWED_VALUES funktioniert.

Syntaxvariante

CREATE OR ALTER TAG

Erstellt ein neues Tag, wenn es noch nicht vorhanden ist, oder wandelt ein vorhandenes Tag in das in der Anweisung definierte Tag um. Eine CREATE OR ALTER TAG-Anweisung folgt den Syntaxregeln einer CREATE TAG-Anweisung und hat die gleichen Einschränkungen wie eine ALTER TAG-Anweisung.

Zu den unterstützten Änderungen gehören Änderungen an den Eigenschaften ALLOWED_VALUES und COMMENT.

Weitere Informationen dazu finden Sie unter Nutzungshinweise zu CREATE OR ALTER TAG.

CREATE OR ALTER TAG <name>
  [ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Bezeichner für das Tag. Weisen Sie den Tag-Zeichenfolgenwert einem Objekt entweder mit einer CREATE <Objekt>-Anweisung oder einer ALTER <Objekt>-Anweisung zu.

Der Bezeichnerwert muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. „Mein Objekt“). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

ALLOWED_VALUES 'val_1' [ , 'val_2' [ , ... ] ]

Gibt eine durch Kommas getrennte Liste der möglichen Zeichenfolgenwerte an, die dem Tag zugewiesen werden können, wenn das Tag mit dem entsprechenden CREATE <Objekt>- oder ALTER <Objekt>-Befehl auf einem Objekt festgelegt wird.

Muss vor allen anderen Parametern stehen, um zu funktionieren.

Die maximale Anzahl von Tag-Werten in dieser Liste ist 300.

Wenn ein Tag so konfiguriert ist, dass es automatisch auf Zielobjekte übertragen wird, kann die Reihenfolge der Werte in der Liste der zulässigen Werte die Lösung von Konflikten beeinflussen. Weitere Informationen dazu finden Sie unter Konflikte bei der Tag-Weitergabe.

Standard: NULL (alle Zeichenfolgenwerte sind zulässig, auch ein leerer Zeichenfolgenwert (d. h. ' ')).

PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }

Gibt an, dass das Tag automatisch von Quellobjekten auf Zielobjekte übertragen wird. Sie können das Tag so konfigurieren, dass es weitergegeben wird, wenn es eine Objektabhängigkeit, Datenbewegung oder beides gibt.

ON_DEPENDENCY_AND_DATA_MOVEMENT

Gibt das Tag weiter, wenn eine Objektabhängigkeit oder Datenbewegung vorliegt.

ON_DEPENDENCY

Gibt das Tag für Objektabhängigkeiten weiter, aber nicht für Datenbewegungen.

ON_DATA_MOVEMENT

Gibt das Tag weiter, wenn es eine Datenbewegung gibt. Dies gilt aber nicht für Objektabhängigkeiten.

ON_CONFLICT = { 'string' | ALLOWED_VALUES_SEQUENCE }

Legt fest, was passiert, wenn es einen Konflikt zwischen den Werten von weitergegebenen Tags gibt.

Wenn Sie diesen Parameter nicht setzen und es einen Konflikt gibt, wird der Wert des Tags auf die Zeichenfolge CONFLICT gesetzt.

Mögliche Werte sind:

'string'

Wenn es einen Konflikt gibt, wird der Wert des Tags auf die angegebene Zeichenfolge gesetzt.

ALLOWED_VALUES_SEQUENCE

Die Reihenfolge der Werte in der Eigenschaft ALLOWED_VALUES des Tags bestimmt, welcher Wert verwendet wird, wenn ein Konflikt besteht. Nehmen wir zum Beispiel an, Sie haben ein Tag mit der folgenden Anweisung erstellt:

CREATE TAG my_tag ALLOWED_VALUES 'blue', 'red'
  PROPAGATE = ON_DEPENDENCY
  ON_CONFLICT = ALLOWED_VALUES_SEQUENCE;
Copy

Wenn es einen Konflikt gibt, dann ist der Wert von my_tag blue, da er in der Liste der zulässigen Werte vor red steht.

Voreinstellung: Setzen Sie den Wert des Tags auf CONFLICT.

COMMENT = 'string_literal'

Gibt einen Kommentar für das Tag an.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE TAG

Schema

OWNERSHIP

Tag

  • Um ein temporäres Objekt zu erstellen, das denselben Namen hat wie das bereits im Schema vorhandene Objekt, muss der verwendeten Rolle die Berechtigung OWNERSHIP für das Objekt erteilt worden sein oder die Rolle muss diese Berechtigung geerbt haben.

  • Erforderlich für die Ausführung einer CREATE OR ALTER TAG-Anweisung für ein vorhandenes Tag.

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Weitere Informationen zur DDL und zu Berechtigungen von Tags finden Sie unter Zugriffssteuerungsrechte.

Nutzungshinweise zu CREATE OR ALTER TAG

  • Es gelten alle Einschränkungen des Befehls ALTER TAG.

  • Das Setzen oder Aufheben einer Maskierungsrichtlinie wird nicht unterstützt.

  • Der Parameter ALLOWED_VALUES muss immer vor allen anderen Parametern, wie COMMENT, festgelegt werden, damit ALLOWED_VALUES funktioniert.

Nutzungshinweise

  • Snowflake begrenzt die Anzahl der Tags in einem Konto auf 10.000.

  • Weitere Informationen darüber, wie Tags mit Snowflake-Objekten verknüpft werden können, finden Sie unter Einführung in das Objekt-Tagging.

  • Weitere Informationen zur Tag-DDL-Autorisierung finden Sie unter Erforderliche Berechtigungen.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • Die OR REPLACE- und IF NOT EXISTS-Klauseln schließen sich gegenseitig aus. Sie können nicht beide in derselben Anweisung verwendet werden.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiele

Erstellen Sie ein Tag mit dem Schlüssel cost_center.

CREATE TAG cost_center COMMENT = 'cost_center tag';
Copy

Aktualisieren Sie cost_center, um die neuen zulässigen Werte aufzunehmen und den Kommentar aufzuheben:

CREATE OR ALTER TAG cost_center ALLOWED_VALUES 'finance', 'engineering', 'sales';
Copy