ALTER PROCEDURE

Ändert die Eigenschaften für eine bestehende gespeicherte Prozedur. Wenn Sie Änderungen vornehmen müssen, die hier nicht unterstützt werden, verwenden Sie stattdessen DROP PROCEDURE, und erstellen Sie dann die gespeicherte Prozedur neu.

Siehe auch:

CREATE PROCEDURE, DROP PROCEDURE, SHOW PROCEDURES, DESCRIBE PROCEDURE

Syntax

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

Parameter

name

Gibt den Bezeichner für die zu ändernde gespeicherte Prozedur an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

arg_data_type [ , ... ]

Gibt den Datentyp des Arguments (der Argumente) für die gespeicherte Prozedur an, sofern sie Argumente enthält. Die Argumenttypen sind notwendig, da gespeicherte Prozeduren eine Überladung von Namen unterstützen (d. h. zwei gespeicherte Prozeduren im gleichen Schema können den gleichen Namen haben) und die Argumenttypen dazu dienen, die Prozedur zu identifizieren, die Sie ändern möchten.

RENAME TO new_name

Gibt den neuen Bezeichner für die gespeicherte Prozedur an; die Kombination aus dem Bezeichner und den vorhandenen Argumentdatentypen muss für das Schema eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Sie können das Objekt in eine andere Datenbank und/oder in ein anderes Schema verschieben und dabei optional das Objekt umbenennen. Geben Sie dazu einen qualifizierten new_name-Wert an, der den neuen Datenbank- und/oder Schemanamen im Format db_name.schema_name.object_name bzw. schema_name.object_name enthält.

Bemerkung

  • Die Zieldatenbank und/oder das Zielschema müssen bereits vorhanden sein. Außerdem darf in der Zieldatenbank nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.

  • Das Verschieben eines Objekts in ein verwaltetes Zugriffsschema ist nicht zulässig, es sei denn, der Objekteigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für das Objekt) ist auch Eigentümer des Zielschemas.

Wenn ein Objekt umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

SET ...

Gibt die Eigenschaften an, die für die gespeicherte Prozedur festgelegt werden sollen:

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar für die gespeicherte Prozedur. Der von Ihnen angegebene Wert wird in der Spalte DESCRIPTION der Ausgabe für SHOW PROCEDURES angezeigt.

LOG_LEVEL = 'log_level'

Gibt den Schweregrad von Meldungen an, die in die aktive Ereignistabelle erfasst und zur Verfügung gestellt werden sollen. Meldungen des angegebenen Schweregrads (und mit höherem Schweregrad) werden erfasst.

Weitere Informationen zu Protokolliergraden finden Sie unter LOG_LEVEL. Weitere Informationen zum Festlegen des Protokolliergrads finden Sie unter Einstellen des Protokolliergrads.

TRACE_LEVEL = 'trace_level'

Steuert, wie Ablaufverfolgungsereignisse in der Ereignistabelle erfasst werden.

Weitere Informationen zu Protokolliergraden finden Sie unter TRACE_LEVEL. Weitere Informationen zum Festlegen der Ablaufverfolgungsebene finden Sie unter Einstellen des Protokolliergrads (Ablaufverfolgungsebene).

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

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

UNSET ...

Gibt die Eigenschaften an, die für die gespeicherte Prozedur deaktiviert werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden.

Derzeit können Sie nur die folgenden Eigenschaften deaktivieren:

  • COMMENT, wodurch der Kommentar zu der Prozedur, falls vorhanden, entfernt wird.

  • TAG tag_name [ , tag_name ... ]

EXECUTE AS { CALLER | OWNER }

Eine gespeicherte Prozedur kann mit den Berechtigungen des Eigentümers (gespeicherte Prozedur mit „Eigentümerrechten“) oder mit den Berechtigungen des Aufrufers (gespeicherte Prozedur mit „Aufruferrechten“) ausgeführt werden. Wenn Sie die Anweisung ALTER PROCEDURE … EXECUTE AS CALLER ausführen, wird die Prozedur künftig als Prozedur mit Aufruferrechten ausgeführt. Wenn Sie die Anweisung ALTER PROCEDURE … EXECUTE AS OWNER ausführen, wird die Prozedur künftig als Prozedur mit Eigentümerrechten ausgeführt.

Nutzungshinweise

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Benennen Sie die gespeicherte Prozedur procedure1 in procedure2 um:

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