SHOW SCHEMAS

Listet die Schemas auf, für die Sie Zugriffsrechte haben, einschließlich entfernter Schemas, die sich noch innerhalb der Aufbewahrungsfrist für Time Travel befinden und daher nicht entfernt werden können. Mit dem Befehl können Sie Schemas für die aktuelle/angegebene Datenbank oder für Ihr gesamtes Konto auflisten.

Die Ausgabe gibt Schemametadaten und -eigenschaften zurück, die lexikographisch nach Datenbank- und Schemanamen geordnet sind. Dies ist wichtig zu beachten, wenn Sie die Ergebnisse mit den bereitgestellten Filtern filtern möchten.

Siehe auch:

CREATE SCHEMA, ALTER SCHEMA, DESCRIBE SCHEMA, DROP SCHEMA, UNDROP SCHEMA

SCHEMATA-Ansicht (Information Schema)

Syntax

SHOW [ TERSE ] SCHEMAS
  [ HISTORY ]
  [ LIKE '<pattern>' ]
  [ IN { ACCOUNT | APPLICATION <app_name> | DATABASE [ <db_name> ] } ]
  [ STARTS WITH '<name_string>' ]
  [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

Parameter

TERSE

Gibt eine Ausgabe zurück, die nur die folgenden Spalten enthält:

  • created_on

  • name

  • kind

  • database_name

  • schema_name

Beachten Sie, dass kind und schema_name immer NULL anzeigen, da kind nicht für Schemas gilt und schema_name bei name überflüssig ist.

Standard: Kein Wert (alle Spalten sind in der Ausgabe enthalten)

HISTORY

Umfasst entfernte Schemas, die noch nicht gelöscht wurden (d. h. sie befinden sich noch innerhalb ihrer jeweiligen Aufbewahrungsfristen für Time Travel). Wenn mehrere Versionen eines gelöschten Schemas vorhanden sind, zeigt die Ausgabe für jede Version eine Zeile an. Die Ausgabe enthält außerdem eine zusätzliche dropped_on-Spalte, die Folgendes anzeigt:

  • Datums- und Zeitstempel (für gelöschte Schemas)

  • NULL (für aktive Schemas).

Kein Wert (gelöschte Schemas sind nicht in der Ausgabe enthalten)

LIKE 'pattern'

Filtert optional die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet einen Musterabgleich ohne Berücksichtigung der Groß-/Kleinschreibung, aber mit Unterstützung von SQL-Platzhalterzeichen (% und _).

Die folgenden Muster geben beispielsweise die gleichen Ergebnisse zurück:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. Standard: Kein Wert (die Ausgabe wird nicht gefiltert).

IN { ACCOUNT | APPLICATION app_name | [ DATABASE ] [ db_name ] }

Gibt den Bereich des Befehls an, mit dem festgelegt wird, ob der Befehl Datensätze nur für die aktuelle/angegebene Datenbank oder für Ihr gesamtes Konto auflistet.

Das Schlüsselwort APPLICATION ist nicht erforderlich, aber es gibt den Geltungsbereich für die benannte Snowflake Native App an.

Das Schlüsselwort DATABASE ist nicht erforderlich. Sie können den Gültigkeitsbereich festlegen, indem Sie nur den Datenbanknamen angeben. Ebenso ist der Datenbankname nicht erforderlich, wenn für die Sitzung derzeit eine Datenbank verwendet wird.

Standard: Abhängig davon, ob für die Sitzung aktuell eine Datenbank verwendet wird:

  • Datenbank: DATABASE ist der Standardwert (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in der Datenbank haben).

  • Keine Datenbank: ACCOUNT ist die Standardeinstellung (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in Ihrem Konto haben).

STARTS WITH 'name_string'

Filtert die Befehlsausgabe optional anhand der Zeichen, die am Anfang des Objektnamens angezeigt werden. Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.

Die folgenden Zeichenfolgen geben beispielsweise unterschiedliche Ergebnisse zurück:

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. Standard: Kein Wert (die Ausgabe wird nicht gefiltert)

LIMIT rows [ FROM 'name_string' ]

Schränkt optional die maximale Anzahl der zurückgegebenen Zeilen ein und ermöglicht gleichzeitig die „Paginierung“ der Ergebnisse. Die tatsächliche Anzahl der zurückgegebenen Zeilen kann geringer sein als das angegebene Limit. Beispielsweise ist die Anzahl der vorhandenen Objekte geringer als das angegebene Limit.

Die optionale Unterklausel FROM 'name_string' dient als „Cursor“ für die Ergebnisse. Dies ermöglicht das Abrufen der angegebenen Anzahl von Zeilen nach der ersten Zeile, deren Objektname mit der angegebenen Zeichenfolge übereinstimmt:

  • Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.

  • Die Zeichenfolge muss nicht den vollständigen Datenbanknamen enthalten. Partielle Namen werden unterstützt.

Standard: Kein Wert (die Ausgabe wird nicht begrenzt)

Bemerkung

Bei SHOW-Befehlen, die sowohl die FROM 'name_string'- als auch die STARTS WITH 'name_string'-Klausel unterstützen, können Sie diese beiden Klauseln in derselben Anweisung kombinieren. Beide Bedingungen müssen jedoch erfüllt sein, da sie sich sonst gegenseitig aufheben und keine Ergebnisse zurückgegeben werden.

Außerdem werden Objekte in lexikographischer Reihenfolge nach Namen zurückgegeben. Daher gibt FROM 'name_string' nur Zeilen mit einem höheren lexikografischen Wert zurück als die von STARTS WITH 'name_string' zurückgegebenen Zeilen.

Beispiel:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' würde keine Ergebnisse zurückgeben.

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' würde keine Ergebnisse zurückgeben.

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' würde Ergebnisse zurückgeben (wenn Zeilen mit den Eingabezeichenfolgen übereinstimmen).

Nutzungshinweise

  • Wenn Sie den Geltungsbereich entweder auf APPLICATION oder die Datenbank mit dem Namen SNOWFLAKE festlegen, gibt die Spalte owner als Eigentümer für das Schema namens LOCAL den Wert SNOWFLAKE zurück. Beispiel:

    SHOW SCHEMAS IN APPLICATION my_app;
    SHOW SCHEMAS IN DATABASE SNOWFLAKE;
    
    Copy

    Die Spalte owner gibt Folgendes zurück:

    +-----+-------+-----+-----------+-----+
    | ... | name  | ... | owner     | ... |
    +-----+-------+-----+-----------+-----+
    | ... | LOCAL | ... | SNOWFLAKE | ... |
    +-----+-------+-----+-----------+-----+
    
  • Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.

  • Der Wert für LIMIT rows kann 10000 nicht überschreiten. Wenn LIMIT rows nicht angegeben wird und das Resultset mehr als 10.000 Zeilen hat, führt der Befehl zu einem Fehler.

    Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze vorhanden sind, fügen Sie entweder LIMIT rows (Zeilen) ein, oder fragen Sie die entsprechende Ansicht im Snowflake Information Schema ab.

  • Zur Nachbearbeitung der Ausgabe dieses Befehls können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.

Beispiele

Zeigen Sie alle Schemas in der aktuellen Datenbank mytestdb an, für die Sie die Berechtigung zum Anzeigen haben:

SHOW SCHEMAS;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+-----------------+--------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time | owner_role_type | budget |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+-----------------+--------+
| Fri, 13 May 2016 17:58:37 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 | ROLE            | NULL   |
| Wed, 25 Feb 2015 16:16:54 -0800 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 | ROLE            | NULL   |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+-----------------+--------+
Copy

Zeigen Sie alle Schemas in der aktuellen Datenbank mytestdb an, für die Sie die Berechtigung zum Anzeigen haben, einschließlich gelöschter Schemas (dieses Beispiel baut auf den DROP SCHEMA-Beispielen auf):

SHOW SCHEMAS HISTORY;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+-----------------+----------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time | dropped_on                      | owner_role_type | budget   |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+-----------------+----------+
| Fri, 13 May 2016 17:59:50 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 | NULL                            |                 | NULL     |
| Wed, 25 Feb 2015 16:16:54 -0800 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 | NULL                            | ROLE            | NULL     |
| Tue, 17 Mar 2015 16:42:29 -0700 | MYSCHEMA           | N          | N          | MYTESTDB      | PUBLIC |                                                           |         |              1 | Fri, 13 May 2016 17:25:32 -0700 | ROLE            | MYBUDGET |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+---------------------------------+-----------------+----------+
Copy