ALTER PROCEDURE

Modifie les propriétés d’une procédure stockée existante. Si vous devez apporter des modifications non prises en charge ici, utilisez plutôt DROP PROCEDURE, puis recréez la procédure stockée.

Voir aussi :

CREATE PROCEDURE , DROP PROCEDURE , SHOW PROCEDURES , DESCRIBE PROCEDURE

Syntaxe

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) RENAME TO <new_name>

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET LOG_LEVEL = '<log_level>'

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET TRACE_LEVEL = '<trace_level>'

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET COMMENT = '<string_literal>'

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET COMMENT

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER PROCEDURE [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) EXECUTE AS { CALLER | OWNER }
Copy

Paramètres

name

Indique l’identificateur de la procédure stockée à modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

arg_data_type [ , ... ]

Spécifie le type de données du ou des arguments pour la procédure stockée, si elle contient des arguments. Les types d’arguments sont nécessaires parce que les procédures stockées prennent en charge le surchargement de nom (plus précisément, deux procédures stockées dans le même schéma peuvent avoir le même nom) et les types d’arguments sont utilisés pour identifier la procédure que vous souhaitez modifier.

RENAME TO new_name

Spécifie le nouvel identificateur pour la procédure stockée ; la combinaison de l’identificateur et des types de données d’argument existants doit être unique pour le schéma.

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

Vous pouvez déplacer l’objet vers une autre base de données et/ou un autre schéma tout en renommant éventuellement l’objet. Pour ce faire, spécifiez une valeur new_name qualifiée qui inclut le nouveau nom de la base de données et/ou du schéma sous la forme db_name.schema_name.object_name ou schema_name.object_name, respectivement.

Note

  • La base de données et/ou le schéma de destination doivent déjà exister. En outre, un objet portant le même nom ne peut pas déjà exister dans le nouvel emplacement ; sinon, l’instruction renvoie une erreur.

  • Le déplacement d’un objet vers un schéma d’accès géré est interdit sauf si le propriétaire de l’objet (c’est-à-dire le rôle qui a le privilège OWNERSHIP sur l’objet) est également propriétaire du schéma cible.

Lorsqu’un objet est renommé, les autres objets qui le référencent doivent être mis à jour avec le nouveau nom.

SET ...

Spécifie les propriétés à définir pour la procédure stockée.

COMMENT = 'string_literal'

Ajoute un commentaire ou écrase le commentaire existant pour la procédure stockée. La valeur que vous spécifiez est affichée dans la colonne DESCRIPTION de la sortie pour SHOW PROCEDURES.

LOG_LEVEL = 'log_level'

Spécifie le niveau de gravité des messages qui doivent être ingérés et mis à disposition dans la table des événements actifs. Les messages du niveau spécifié (et des niveaux plus sévères) sont ingérés.

Pour plus d’informations sur les niveaux de journalisation, voir LOG_LEVEL. Pour plus d’informations sur la définition du niveau de journalisation, voir Réglage du niveau de journalisation.

TRACE_LEVEL = 'trace_level'

Contrôle la manière dont les événements de trace sont intégrés dans la table des événements.

Pour plus d’informations sur les niveaux, voir TRACE_LEVEL. Pour plus d’informations sur la définition du niveau de trace, voir Réglage du niveau de trace.

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Spécifie le nom de la balise et la valeur de la chaîne de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.

Pour plus de détails sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.

UNSET ...

Spécifie les propriétés à désactiver pour la procédure stockée, qui les réinitialise aux valeurs par défaut.

Actuellement, les seules propriétés que vous pouvez désactiver sont les suivantes :

  • COMMENT qui supprime le commentaire, le cas échéant, de la procédure.

  • TAG tag_name [ , tag_name ... ]

EXECUTE AS { CALLER | OWNER }

Une procédure stockée peut s’exécuter avec les privilèges du propriétaire (procédure stockée des « droits du propriétaire ») ou avec les privilèges de l’appelant (procédure stockée des « droits de l’appelant »). Si vous exécutez l’instruction ALTER PROCEDURE … EXECUTE AS CALLER, alors la procédure s’exécutera ensuite comme une procédure de droits de l’appelant. Si vous exécutez l’instruction ALTER PROCEDURE … EXECUTE AS OWNER, alors la procédure s’exécutera ensuite comme une procédure de droits du propriétaire.

Notes sur l’utilisation

  • 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.

Exemples

Renommer la procédure stockée procedure1 en procedure2 :

ALTER PROCEDURE IF EXISTS procedure1(FLOAT) RENAME TO procedure2;
Copy