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:
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>' ]
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>' ]
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;
Wenn es einen Konflikt gibt, dann ist der Wert von
my_tag
blue
, da er in der Liste der zulässigen Werte vorred
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 |
|
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, wieCOMMENT
, festgelegt werden, damitALLOWED_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
- undIF 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';
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';