CREATE TAG

Crée une nouvelle balise ou remplace une balise existante dans le système.

Cette commande prend en charge les variantes suivantes :

  • CREATE OR ALTER TAG : Crée une balise si elle n’existe pas ou modifie une balise existante.

Voir aussi :

ALTER TAG, SHOW TAGS, DROP TAG, UNDROP TAG

Syntaxe

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

Important

Le paramètre ALLOWED_VALUES doit toujours être défini avant tous les autres paramètres, tels que COMMENT, pour que ALLOWED_VALUES fonctionne.

Syntaxe des variantes

CREATE OR ALTER TAG

Crée une nouvelle balise si elle n’existe pas encore, ou transforme une balise existante en balise définie dans l’instruction. Une instruction CREATE OR ALTER TAG suit les règles syntaxiques d’une instruction CREATE TAG et présente les mêmes limitations qu’une instruction ALTER TAG.

Les altérations prises en charge comprennent les modifications des propriétés ALLOWED_VALUES et COMMENT.

Pour plus d’informations, voir Notes sur l’utilisation de CREATE OR ALTER TAG.

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

Paramètres requis

name

Identificateur pour la balise. Affectez la valeur de la chaîne de balises à un objet en utilisant une instruction CREATE <objet> ou une instruction ALTER <objet>.

La valeur de l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. « Mon objet »). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

Paramètres facultatifs

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

Spécifie une liste, séparée par des virgules, des valeurs de chaîne possibles qui peuvent être affectées à la balise lorsque celle-ci est définie sur un objet à l’aide de la commande CREATE <objet> ou ALTER <objet> correspondante.

Pour fonctionner, il doit précéder tous les autres paramètres.

Le nombre maximal de valeurs de balise dans cette liste est de 300.

Si une balise est configurée pour se propager automatiquement aux objets cibles, l’ordre des valeurs dans la liste autorisée peut affecter la manière dont les conflits sont résolus. Pour plus d’informations, voir Conflits liés à la propagation des balises.

Valeur par défaut : NULL (toutes les valeurs de chaîne sont autorisées, y compris une valeur de chaîne vide [c’est-à-dire ' ']).

PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }

Spécifie que la balise sera automatiquement propagée des objets sources aux objets cibles. Vous pouvez configurer la balise pour qu’elle se propage en cas de dépendance de l’objet, de mouvement de données ou des deux.

ON_DEPENDENCY_AND_DATA_MOVEMENT

Propage la balise en cas de dépendance d’un objet ou de mouvement de données.

ON_DEPENDENCY

Propage la balise pour les dépendances d’objets, mais pas pour les mouvements de données.

ON_DATA_MOVEMENT

Propage la balise en cas de mouvement de données, mais pas pour les dépendances d’objets.

ON_CONFLICT = { 'string' | ALLOWED_VALUES_SEQUENCE }

Spécifie ce qui se passe en cas de conflit entre les valeurs des balises propagées.

Si vous ne définissez pas ce paramètre et qu’il y a un conflit, la valeur de la balise est définie sur la chaîne CONFLICT.

Les valeurs possibles sont les suivantes :

'string'

En cas de conflit, la valeur de la balise est définie sur la chaîne spécifiée.

ALLOWED_VALUES_SEQUENCE

L’ordre des valeurs dans la propriété ALLOWED_VALUES de la balise détermine la valeur utilisée en cas de conflit. Par exemple, supposons que vous avez créé une balise avec l’instruction suivante :

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

En cas de conflit, la valeur de my_tag sera blue car elle précède red dans la liste des valeurs autorisées.

Par défaut : définissez la valeur de la balise sur CONFLICT.

COMMENT = 'string_literal'

Spécifie un commentaire pour la balise.

Par défaut : aucune valeur

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

Remarques

CREATE TAG

Schéma

OWNERSHIP

Balise

  • Un rôle doit se voir accorder le privilège OWNERSHIP ou en hériter sur l’objet pour créer un objet temporaire portant le même nom que l’objet qui existe déjà dans le schéma.

  • Obligatoire pour exécuter une instruction CREATE OR ALTER TAG pour une balise existante.

Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Pour plus de détails sur la DDL de balise et les privilèges, voir Privilèges de contrôle d’accès.

Notes sur l’utilisation de CREATE OR ALTER TAG

  • Toutes les limitations de la commande ALTER TAG s’appliquent.

  • La définition ou l’annulation de la définition d’une politique de masquage n’est pas prise en charge.

  • Le paramètre ALLOWED_VALUES doit toujours être défini avant tous les autres paramètres, tels que COMMENT, pour que ALLOWED_VALUES fonctionne.

Notes sur l’utilisation

  • Snowflake limite le nombre de balises dans un compte à 10 000.

  • Pour plus d’informations sur la manière dont les balises peuvent être associées aux objets Snowflake, voir Introduction au balisage des objets.

  • Pour plus d’informations sur l’autorisation de la balise DDL, voir les privilèges requis.

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

  • Les clauses OR REPLACE et IF NOT EXISTS s’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.

Exemples

Créer une balise avec la clé cost_center.

CREATE TAG cost_center COMMENT = 'cost_center tag';
Copy

Mettez à jour cost_center pour inclure les nouvelles valeurs autorisées et supprimez le commentaire :

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