Variablen in SQL verwenden¶
Bemerkung
Die Unterstützung von Variablen erfordert Projektdefinition Version 1.1.
Sie können auch Projektdateien verwenden, um Variablen zu definieren, die andere Befehle, wie z. B. snow sql
, verwenden können. Im Abschnitt env
der Projektdefinitionsdatei (in der Regel snowflake.yml
) können Sie Variablen wie folgt definieren:
definition_version: 2
env:
database: "dev"
role: "eng_rl"
Nachdem Sie den Abschnitt env
zur Projektdefinitionsdatei hinzugefügt haben, können Sie die Variablen an den Befehl snow sql
übergeben, anstatt die Variable und den Wert in der Befehlszeile anzugeben.
Geben Sie stattdessen die Datenbank und die Rolle wie folgt in der Befehlszeile mit der Option --variable
an:
snow sql \
-q "grant usage on database <% database %> to <% role %>" \
-D "database=dev" \
-D "role=eng_rl"
Sie können die im Abschnitt env
definierten Variablen wie folgt angeben:
snow sql -q "grant usage on database <% ctx.env.database %> to <% ctx.env.role %>"
Sie können den Abschnitt env
zusätzlich zu allen anderen Abschnitten einfügen, die Sie in die Projektdefinitionsdatei aufnehmen.
definition_version: 2
entities:
test_function:
type: "function"
stage: "dev_deployment"
artifacts: ["app/"]
handler: "functions.hello_function"
signature: ""
returns: string
hello_procedure:
type: "procedure"
stage: "dev_deployment"
artifacts: ["app/"]
handler: "procedures.hello_procedure"
signature:
- name: "name"
type: "string"
returns: string
env:
database: "dev"
role: "eng_rl"
Bemerkung
Wenn Ihre aktuelle Projektdefinitionsdatei definition_version: 1
verwendet, müssen Sie sie auf definition_version: 1.1
aktualisieren, um die Vorteile des Variablen-Features nutzen zu können. Wenn Sie den Wert nicht ändern, ignoriert Snowflake CLI den Abschnitt env
, aber die anderen Typen von Projekten (in diesem Beispiel snowpark
) funktionieren weiterhin wie erwartet.
Sie können jede in der Projektdefinitionsdatei snowflake.yml
definierte Variable überschreiben, indem Sie eine Shell-Umgebungsvariable mit demselben Namen setzen (Groß-/Kleinschreibung wird beachtet). Um den im Beispiel definierten Wert database
zu überschreiben, können Sie z. B. den folgenden Shell-Befehl ausführen:
export database="other"
Weitere Informationen zu env
-Variablen finden Sie unter Speichern von Variablen in der snowflake.yml-Projektdefinitionsdatei.