ALTER PROCEDURE

既存のストアドプロシージャのプロパティを変更します。ここでサポートされていない変更を加える必要がある場合は、代わりに DROP PROCEDURE を使用し、ストアドプロシージャを再作成してください。

こちらもご参照ください。

CREATE PROCEDUREDROP PROCEDURESHOW PROCEDURESDESCRIBE 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 [ , ... ]

ストアドプロシージャに引数がある場合、その引数のデータ型を指定します。ストアドプロシージャが名前のオーバーロードをサポートしており(つまり、同じスキーマ内の2つのストアドプロシージャに同じ名前を付けることができる)、引数タイプを使用して、変更するプロシージャを識別するため、引数タイプが必要です。

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