ALTER PROCEDURE¶
修改现有存储过程的属性。如果需要进行此处不支持的任何更改,请改用 DROP PROCEDURE,然后重新创建存储过程。
语法¶
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 }
参数¶
name
指定要更改的存储过程的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
arg_data_type [ , ... ]
指定存储过程的实参的数据类型(如果有实参)。实参类型是必需的,因为存储过程支持名称过载(即同一架构中的两个存储过程可以具有相同的名称),并且实参类型用于标识要更改的过程。
RENAME TO new_name
指定存储过程的新标识符;标识符和现有实参数据类型的组合对于架构必须是唯一的。
有关更多详细信息,请参阅 标识符要求。
可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定
new_name
值,该值分别以db_name.schema_name.object_name
或schema_name.object_name
的形式包含新数据库和/或架构名称。备注
目标数据库和/或架构必须已存在。此外,新位置中不能存在同名对象;否则,该语句将返回错误。
除非 对象所有者(即对对象拥有 OWNERSHIP 权限的角色)也拥有目标架构,否则禁止将对象移动到托管访问架构。
重命名对象时,引用该对象的其他对象必须使用新名称进行更新。
SET ...
指定要为存储过程设置的属性。
COMMENT = 'string_literal'
添加注释或覆盖存储过程的现有注释。您指定的值将显示在 SHOW PROCEDURES 输出的
DESCRIPTION
列中。LOG_LEVEL = 'log_level'
指定应引入并在活动事件表中可用的消息的严重级别。引入指定级别(以及更严重级别)的消息。
TRACE_LEVEL = 'trace_level'
控制如何将跟踪事件引入到事件表中。
有关级别的更多信息,请参阅 TRACE_LEVEL。有关设置跟踪级别的更多信息,请参阅 设置跟踪级别。
UNSET ...
指定要取消设置存储过程的属性,这会将其重置为默认值。
目前,唯一可以取消设置的属性是:
COMMENT
,这将删除该过程的注释(如果有)。TAG tag_name [ , tag_name ... ]
EXECUTE AS { CALLER | OWNER }
存储过程可以以所有者的权限( “所有者权限”存储过程)或以调用方的权限(“调用方权限”存储过程)执行。如果执行语句 ALTER PROCEDURE ...EXECUTE AS CALLER,则将来调用该过程时,它将作为调用方权限过程执行。如果执行语句 ALTER PROCEDURE ...EXECUTE AS OWNER,则将来调用该过程时,它将作为所有者权限过程执行。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
将存储过程 procedure1
重命名为 procedure2
:
ALTER PROCEDURE IF EXISTS procedure1(FLOAT) RENAME TO procedure2;