ALTER FUNCTION (Snowpark Container Services)

Ändert die Eigenschaften einer bestehenden Dienstfunktion.

Um weitere Änderungen an einer Dienstfunktion vorzunehmen, müssen Sie die Funktion (mit DROP FUNCTION (Snowpark Container Services)) löschen und dann neu erstellen.

Siehe auch:

Dienstfunktionen, CREATE FUNCTION, DESC FUNCTION, DROP FUNCTION

Syntax

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  RENAME TO <new_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  SET CONTEXT_HEADERS = ( <context_function_1> [ , <context_function_2> ...] )

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  SET MAX_BATCH_ROWS = <integer>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  SET COMMENT = '<string_literal>'

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  SET SERVICE = '<service_name>' ENDPOINT = '<endpoint_name>'

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
  UNSET { CONTEXT_HEADERS | MAX_BATCH_ROWS | COMMENT }
Copy

Parameter

name

Gibt den Bezeichner für die zu ändernde Dienstfunktion an. Der Bezeichner kann den Schemanamen und den Datenbanknamen sowie den Funktionsnamen enthalten. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelten Anführungszeichen eingeschlossen sind, wird ebenfalls zwischen Groß- und Kleinschreibung unterschieden.

arg_data_type [ , ... ]

Gibt die Argumente/Eingabedatentypen für die Dienstfunktion an.

Wenn die Funktion Argumente akzeptiert, muss der Befehl ALTER die Argumenttypen angeben, da Funktionen das Überladen von Namen unterstützen (d. h. zwei Funktionen im selben Schema können denselben Namen haben) und die Argumenttypen zur Identifizierung der Funktion verwendet werden.

RENAME TO new_name

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

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Bemerkung

Wenn Sie den neuen Namen für die Dienstfunktion angeben, verwenden Sie keine Argumentdatentypen oder Klammern, sondern geben Sie nur den neuen Namen an.

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 Funktion festgelegt werden sollen:

COMMENT = 'string_literal'

Gibt einen Kommentar für die Funktion an, der in der Spalte DESCRIPTION der Ausgabe von SHOW FUNCTIONS und SHOW USER FUNCTIONS angezeigt wird.

SERVICE = '<service_name>' ENDPOINT = '<endpoint_name>'

Gibt den Namen des Dienstes und den Namen des Endpunkts an, wie er in der Dienstspezifikation definiert ist.

CONTEXT_HEADERS = ( context_function_1 [ , context_function_2 ... ] )

Es ermöglicht die Bindung der Ergebnisse der Snowflake-Kontextfunktionen an den HTTP-Header.

Jeder Wert muss der Name einer Kontextfunktion sein. Setzen Sie die Namen nicht in Anführungszeichen.

Weitere Details zu diesem Parameter finden Sie unter CREATE FUNCTION (Snowpark Container Services).

MAX_BATCH_ROWS = integer

Gibt die Stapelgröße beim Senden von Dienst zur Erhöhung der Parallelität an

UNSET ...

Gibt die Eigenschaften an, die für die Funktion nicht gesetzt werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden. Beachten Sie, dass Sie den Dienstendpunkt nicht zurücksetzen können.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

OWNERSHIP

Funktion

USAGE

Dienstendpunkt

Die Nutzung eines Dienstendpunkts wird den in der Dienstspezifikation definierten Dienstrollen gewährt. Anschließend weisen Sie die Dienstrolle der Rolle zu, die die Dienstfunktion ändert. Diese Berechtigung ist erforderlich, wenn Sie einen Dienstendpunkt ändern.

Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

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

Umbenennen einer Dienstfunktion:

ALTER FUNCTION my_echo_udf(VARCHAR) RENAME TO my_echo_udf_temp;
Copy

Legen Sie einen Kommentar für eine Dienstfunktion fest:

ALTER FUNCTION my_echo_udf(VARCHAR) SET COMMENT = 'some comment';
Copy

Legen Sie die maximale Anzahl von Zeilen pro Batch für eine Dienstfunktion fest:

ALTER FUNCTION my_echo_udf(number) SET MAX_BATCH_ROWS = 100;
Copy

Legen Sie den CURRENT_USER-Kontextheader für eine Dienstfunktion fest:

ALTER FUNCTION my_echo_udf(VARCHAR) SET CONTEXT_HEADER = (CURRENT_USER);
Copy

MAX_BATCH_ROWS für eine Dienstfunktion aufheben:

ALTER FUNCTION my_echo_udf(VARCHAR) UNSET MAX_BATCH_ROWS;
Copy