Catégories :

DDL pour les fonctions définies par l’utilisateur, les fonctions externes et les procédures stockées

ALTER PROCEDURE

Modifie les propriétés d’une procédure stockée existante. Actuellement, les seules opérations prises en charge sont le renommage d’une procédure stockée ou l’ajout, l’écrasement, la suppression d’un commentaire pour une procédure stockée. Si vous devez apporter d’autres modifications à une procédure stockée, 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 COMMENT = '<string_literal>'

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

ALTER PROCEDURE <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER PROCEDURE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

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

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.

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

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;
Revenir au début