ALTER PROCEDURE

Modifica as propriedades de um procedimento armazenado existente. Se você precisar fazer alterações não suportadas aqui, use DROP PROCEDURE e recrie o procedimento armazenado.

Consulte também:

CREATE PROCEDURE , DROP PROCEDURE , SHOW PROCEDURES , DESCRIBE PROCEDURE

Sintaxe

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

Parâmetros

name

Especifica o identificador do procedimento armazenado a ser alterado. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

arg_data_type [ , ... ]

Especifica o tipo de dados do(s) argumento(s) para o procedimento armazenado, se ele tiver argumentos. Os tipos de argumentos são necessários porque os procedimentos armazenados oferecem suporte à sobrecarga de nomes (ou seja, dois procedimentos armazenados no mesmo esquema podem ter o mesmo nome) e os tipos de argumentos são usados para identificar o procedimento que você deseja alterar.

RENAME TO new_name

Especifica o novo identificador para o procedimento armazenado; a combinação do identificador com os tipos de dados de argumentos existentes deve ser única para o esquema.

Para obter mais detalhes, consulte Requisitos para identificadores.

Você pode mover o objeto para um banco de dados e/ou esquema diferente enquanto opcionalmente renomeia o objeto. Para isso, especifique um valor qualificado new_name que inclua o novo banco de dados e/ou nome do esquema no formulário db_name.schema_name.object_name ou schema_name.object_name, respectivamente.

Nota

  • O banco de dados e/ou esquema de destino já deve existir. Além disso, um objeto com o mesmo nome não pode já existir no banco de dados de destino; caso contrário, a instrução retorna um erro.

  • É proibido mover um objeto para um esquema de acesso gerenciado a menos que o proprietário do objeto (ou seja, a função que tem o privilégio OWNERSHIP sobre o objeto) também possua o esquema de destino.

Quando um objeto é renomeado, outros objetos que fazem referência a ele devem ser atualizados com o novo nome.

SET ...

Especifica as propriedades a serem definidas para o procedimento armazenado:

COMMENT = 'string_literal'

Adiciona um comentário ou substitui o comentário existente do procedimento armazenado. O valor especificado é exibido na coluna DESCRIPTION na saída para SHOW PROCEDURES.

LOG_LEVEL = 'log_level'

Especifica o nível de gravidade das mensagens que devem ser ingeridas e disponibilizadas na tabela de eventos ativos. As mensagens no nível especificado (e em níveis mais graves) são ingeridas.

Para obter mais informações sobre os níveis, consulte LOG_LEVEL. Para obter informações sobre como configurar o nível de registro, consulte Configuração do nível de registro.

TRACE_LEVEL = 'trace_level'

Controla como os eventos de rastreamento são ingeridos na tabela de eventos.

Para obter informações sobre níveis, consulte TRACE_LEVEL. Para obter informações sobre como configurar o nível de rastreamento, consulte Configuração do nível de rastreamento.

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

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter mais detalhes sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

UNSET ...

Especifica as propriedades a serem removidas para o procedimento armazenado, o que as restaura para os padrões.

Atualmente, as únicas propriedades que podem ser removidas são:

  • COMMENT que elimina o comentário, se houver, do procedimento.

  • TAG tag_name [ , tag_name ... ]

EXECUTE AS { CALLER | OWNER }

Um procedimento armazenado pode ser executado com os privilégios do proprietário (um procedimento armazenado “direitos do proprietário”) ou com os privilégios do chamador (um procedimento armazenado “direitos do chamador”). Se você executar a instrução ALTER PROCEDURE … EXECUTE AS CALLER, então, quando o procedimento for chamado no futuro, ele será executado como um procedimento de direitos do chamador. Se você executar a instrução ALTER PROCEDURE … EXECUTE AS OWNER, então, no futuro, o procedimento será executado como um procedimento de direitos do proprietário.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Exemplos

Renomear procedimento armazenado procedure1 para procedure2:

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