ALTER PROCEDURE

기존 저장 프로시저의 속성을 수정합니다. 여기서 지원되지 않는 변경 작업을 해야 할 경우에는 DROP PROCEDURE 를 대신 사용한 다음 저장 프로시저를 다시 만드십시오.

참고 항목:

CREATE PROCEDURE , DROP PROCEDURE , SHOW PROCEDURES , DESCRIBE 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 }
Copy

매개 변수

name

변경할 저장 프로시저의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

arg_data_type [ , ... ]

인자가 있는 경우 저장 프로시저에 대한 인자의 데이터 타입을 지정합니다. 저장 프로시저는 이름 오버로딩(즉, 같은 스키마에 있는 두 저장 프로시저의 이름이 같을 수 있음)을 지원하고 인자 유형을 사용해 변경하려는 프로시저를 식별하므로 인자 유형이 필수적입니다.

RENAME TO new_name

저장 프로시저에 대해 새 식별자를 지정하는데, 식별자와 기존 인자 데이터 타입의 조합은 스키마에 대해 고유해야 합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각 db_name.schema_name.object_name 또는 schema_name.object_name 형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된 new_name 값을 지정하십시오.

참고

  • 대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.

  • 오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한을 가진 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.

오브젝트의 이름이 바뀌면 그 오브젝트를 참조하는 다른 오브젝트도 새 이름으로 업데이트해야 합니다.

SET ...

저장 프로시저에 대해 설정할 속성을 지정합니다.

COMMENT = 'string_literal'

저장 프로시저에 대한 설명을 추가하거나 기존 설명을 덮어씁니다. 지정한 값은 SHOW PROCEDURES 에 대한 출력의 DESCRIPTION 열에 표시됩니다.

LOG_LEVEL = 'log_level'

수집하여 활성 이벤트 테이블에서 사용 가능하도록 해야 하는 메시지의 심각도 수준을 지정합니다. 지정된 수준과 더 심각한 수준의 메시지가 수집됩니다.

수준에 대한 자세한 내용은 LOG_LEVEL 섹션을 참조하십시오. 로그 수준 설정에 대한 자세한 내용은 로그 수준 설정하기 섹션을 참조하십시오.

TRACE_LEVEL = 'trace_level'

추적 이벤트가 이벤트 테이블에 수집되는 방식을 제어합니다.

수준에 대한 자세한 내용은 TRACE_LEVEL 섹션을 참조하십시오. 추적 수준 설정에 대한 자세한 내용은 추적 수준 설정하기 섹션을 참조하십시오.

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

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.

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;
Copy