SHOW COLUMNS

Listet die Spalten in den Tabellen oder Ansichten sowie die Dimensionen, Fakten und Kennzahlen in den semantischen Ansichten auf, für die Sie Zugriffsrechte haben. Mit diesem Befehl können Sie die Spalten, Dimensionen, Fakten und Kennzahlen für die folgenden Objekte auflisten:

  • Die angegebene Tabelle oder Ansicht.

  • Alle Tabellen und Ansichten im angegebenen oder aktuell verwendeten Schema.

  • Alle Tabellen und Ansichten in der angegebenen oder aktuell verwendeten Datenbank.

  • Alle Tabellen und Ansichten in Ihrem Konto.

Siehe auch:

DESCRIBE TABLE

Ansicht COLUMNS (Information Schema)

Syntax

SHOW COLUMNS [ LIKE '<pattern>' ]
             [ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> } | APPLICATION <application_name> | APPLICATION PACKAGE <application_package_name> ]
Copy

Parameter

LIKE '<Muster>'

Filtert die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet eine Mustererkennung 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%' ...
IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> | APPLICATION <application_name>  | APPLICATION PACKAGE <application_package_name> }

Gibt den Geltungsbereich des Befehls an, wodurch festgelegt wird, ob der Befehl Datensätze nur für die aktuelle/angegebene Datenbank, das aktuelle/angegebene Schema, die aktuelle/angegebene Tabelle oder Ansicht auflistet oder für Ihr gesamtes Konto.

Wenn Sie das Schlüsselwort ACCOUNT angeben, ruft der Befehl Datensätze für alle Schemas in allen Datenbanken des aktuellen Kontos ab.

Wenn Sie das Schlüsselwort DATABASE angeben, dann gilt Folgendes:

  • Wenn Sie einen Wert für db_name angeben, ruft der Befehl Datensätze für alle Schemas der angegebenen Datenbank ab.

  • Wenn Sie keinen db_name angeben, dann:

    • Wenn es eine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

    • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze aller Datenbanken und Schemas im Konto ab.

Wenn Sie das Schlüsselwort SCHEMA angeben, dann gilt Folgendes:

  • Wenn Sie einen qualifizierten Schemanamen angeben (z. B. my_database.my_schema), ruft der Befehl Datensätze für die angegebene Datenbank und das angegebene Schema ab.

  • Wenn Sie einen nicht qualifizierten Wert für schema_name angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, ruft der Befehl Datensätze für das angegebene Schema in der aktuellen Datenbank ab.

    • Wenn keine aktuelle Datenbank vorhanden ist, zeigt der Befehl den Fehler SQL compilation error: Object does not exist, or operation cannot be performed an.

  • Wenn Sie keinen schema_name angeben, dann:

    • Wenn es eine aktuelle Datenbank gibt, dann gilt Folgendes:

      • Wenn es ein aktuelles Schema gibt, dann ruft der Befehl Datensätze für das aktuelle Schema in der aktuellen Datenbank ab.

      • Wenn kein aktuelles Schema vorhanden ist, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

    • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Datenbanken und alle Schemas im Konto ab.

Wenn Sie das Schlüsselwort TABLE ohne einen Wert für table_name angeben, dann gilt Folgendes:

  • Wenn es eine aktuelle Datenbank gibt, dann gilt Folgendes:

    • Wenn es ein aktuelles Schema gibt, dann ruft der Befehl Datensätze für das aktuelle Schema in der aktuellen Datenbank ab.

    • Wenn kein aktuelles Schema vorhanden ist, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

  • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Datenbanken und alle Schemas im Konto ab.

Wenn Sie einen <Tabellennamen> (mit oder ohne Schlüsselwort TABLE) angeben, dann gilt Folgendes:

  • Wenn Sie einen vollqualifizierten <Tabellennamen> (z. B. my_database_name.my_schema_name.my_table_name) angeben, dann ruft der Befehl alle Datensätze für die angegebene Tabelle ab.

  • Wenn Sie einen Schema-qualifizierten <Tabellennamen> (z. B. my_schema_name.my_table_name) angeben, dann:

    • Wenn eine aktuelle Datenbank vorhanden ist, ruft der Befehl alle Datensätze für die angegebene Tabelle ab.

    • Wenn keine aktuelle Datenbank vorhanden ist, zeigt der Befehl eine Fehlermeldung ähnlich wie Cannot perform SHOW <Objekttyp>. This session does not have a current database... an.

  • Wenn Sie einen nicht qualifizierten <Tabellennamen> angeben, dann gilt Folgendes:

    • Wenn eine aktuelle Datenbank und ein aktuelles Schema vorhanden sind, dann ruft der Befehl Datensätze für die angegebene Tabelle im aktuellen Schema der aktuellen Datenbank ab.

    • Wenn keine aktuelle Datenbank oder kein aktuelles Schema vorhanden ist, zeigt der Befehl eine Fehlermeldung ähnlich der folgenden an: SQL compilation error: <Objekt> does not exist or not authorized..

If you specify the VIEW keyword or a view name, the rules for views parallel the rules for tables.

If you specify the APPLICATION or APPLICATION PACKAGE keywords, records for the specified Snowflake Native App Framework application or application package are returned.

Standard: Hängt davon ab, 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).

Nutzungshinweise

  • You can use the VIEW keyword and specify a view name for standard views, materialized views, and semantic views.

  • Der Befehl gibt maximal zehntausend Datensätze für den angegebenen Objekttyp zurück, entsprechend den Zugriffsrechten für die zur Ausführung des Befehls verwendete Rolle. Datensätze, die die Grenze von zehntausend Datensätzen überschreiten, werden nicht zurückgegeben, selbst wenn ein Filter angewendet wurde.

    Um Ergebnisse anzuzeigen, für die mehr als zehntausend Datensätze existieren, fragen Sie die entsprechende Ansicht (sofern vorhanden) in Snowflake Information Schema ab.

  • Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.

  • Der Befehl gibt nur Objekte zurück, für die der aktuellen Rolle des aktuellen Benutzers mindestens ein Zugriffsrecht zugewiesen wurde.

  • Das Zugriffsrecht MANAGE GRANTS gibt seinem Eigentümer implizit die Möglichkeit, jedes Objekt im Konto anzuzeigen. Standardmäßig haben nur der Kontoadministrator (Benutzer mit der Rolle ACCOUNTADMIN) und der Systemadministrator (Benutzer mit der Rolle SECURITYADMIN) die Berechtigung MANAGE GRANTS.

  • Um die Ausgabe dieses Befehls nachzubearbeiten, können Sie den Befehl Pipe-Operator (->>) oder die RESULT_SCAN-Funktion verwenden. Beide Konstrukte behandeln die Ausgabe als Resultset, das Sie abfragen können.

    Sie können zum Beispiel mit dem Pipe-Operator oder der RESULT_SCAN-Funktion bestimmte Spalten aus der SHOW-Befehlsausgabe auswählen oder die Zeilen filtern.

    Wenn Sie sich auf die Ausgabespalten beziehen, verwenden Sie Bezeichner mit doppelten Anführungszeichen für die Spaltennamen. Beispiel: Zur Auswahl der Ausgabespalte type geben Sie SELECT "type" an.

    Sie müssen Bezeichner in doppelten Anführungszeichen verwenden, da die Ausgabespaltennamen für SHOW-Befehle in Kleinbuchstaben geschrieben werden. Die doppelten Anführungszeichen stellen sicher, dass die Spaltennamen in der SELECT-Liste oder WHERE-Klausel den Spaltennamen in der SHOW-Befehlsausgabe entsprechen, die gescannt wurde.

Bemerkung

Die Spaltennamen in der Ausgabetabelle für den Befehl SHOW COLUMNS sind in Kleinbuchstaben geschrieben (d. h. table_name, schema_name, column_name usw.). Allerdings geben die Werte in der Spalte column_name den Namen der gespeicherten Spalte wieder. Wenn beispielsweise mit der Anweisung ALTER TABLE ... ADD COLUMN MYCOLUMN ein Spaltenname hinzugefügt wird, der nicht in doppelte Anführungszeichen eingeschlossen ist, wird der Spaltenname in Großbuchstaben gespeichert und erscheint als MYCOLUMN in der Spalte column_name.

Ausgabe

Die Befehlsausgabe enthält Spalteneigenschaften und Metadaten in den folgenden Spalten:

Spalte

Beschreibung

table_name

Name of the table or view that the column, dimension, fact, or metric belongs to.

schema_name

Schema der Tabelle.

column_name

Name der Spalte, Dimension, Fakt oder Kennzahl.

data_type

JSON-Objekt, das den Datentyp und die anwendbaren Eigenschaften der Spalte, Dimension, Fakten oder Kennzahlen enthält.

Das Schlüssel-Wert-Paar type gibt den Datentyp der Spalte, Dimension, Fakten oder Kennzahlen an.

Für die Datentypen Zeichenfolge und numerisch gibt type einen der folgenden Werte an:

  • TEXT für alle Zeichenfolgentypen.

  • FIXED für alle numerischen Festkommatypen.

  • REAL für alle numerischen Gleitkommatypen.

Die anderen Schlüssel-Wert-Paare beschreiben die Eigenschaften, die für den jeweiligen Datentyp gelten. Beispiel:

  • Wenn type den Wert TEXT oder BINARY aufweist, können die zusätzlichen Schlüssel-Wert-Paare length, byteLength, nullable und fixed enthalten.

  • Wenn type den Wert FIXED, TIME, TIMESTAMP_NTZ, TIMESTAMP_LTZ oder TIMESTAMP_TZ aufweist, können die zusätzlichen Schlüssel-Wert-Paare precision, scale und nullable enthalten.

  • Wenn type den Wert REAL, DATE oder BOOLEAN aufweist, können die zusätzlichen Schlüssel-Wert-Paare nullable enthalten.

null?

Gibt an, ob die Spalte NULL-Werte enthalten kann.

default

Der ggf. für die Spalte definierte Standardwert.

kind

Einer der folgenden Werte:

  • COLUMN für Spalten in Tabellen, Ansichten und materialisierten Ansichten.

  • DIMENSION für Dimensionen in semantischen Ansichten.

  • FACT für Fakten in semantischen Ansichten.

  • METRIC für Kennzahlen in semantischen Ansichten.

expression

comment

Comment, if any, for the column, dimension, fact, or metric.

database_name

Datenbank der Tabelle.

autoincrement

Die ggf. für die Spalte vorhandenen Start- und Inkrementierungswerte für die automatische Inkrementierung. Wenn die Spalte die Eigenschaft NOORDER hat, enthält der Wert NOORDER (zum Beispiel IDENTITY START 1 INCREMENT 1 NOORDER). Andernfalls enthält der Wert ORDER.

schema_evolution_record

Erfasst Informationen zu der zuletzt ausgelösten Schemaentwicklung bei einer gegebenen Tabellenspalte. Diese Spalte enthält die folgenden Unterfelder:

  • EvolutionType: Der Typ der ausgelösten Schemaentwicklung (ADD_COLUMN oder DROP_NOT_NULL).

  • EvolutionMode: Der auslösende Erfassungsmechanismus (COPY oder SNOWPIPE).

  • FileName: Der Dateiname, der die Entwicklung ausgelöst hat.

  • TriggeringTime: Der ungefähre Zeitpunkt, zu dem die Entwicklung der Spalte erfolgte.

  • QueryId oder PipeID: Ein eindeutiger Bezeichner der auslösenden Abfrage oder Pipe (QUERY ID für COPY oder PIPE ID für SNOWPIPE).

Beispiele

Im folgenden Beispiel wird eine Tabelle erstellt und dann der Befehl SHOW COLUMNS zum Auflisten der Spalten in der Tabelle ausgeführt:

CREATE OR REPLACE TABLE test_show_columns (
  n1 NUMBER DEFAULT 5,
  n2_int INTEGER DEFAULT n1+5,
  n3_bigint BIGINT AUTOINCREMENT,
  n4_dec DECIMAL IDENTITY (1,10),
  f1 FLOAT,
  f2_double DOUBLE,
  f3_real REAL,
  s1 STRING,
  s2_var VARCHAR,
  s3_char CHAR,
  s4_text TEXT,
  "s5_case_sensitive" VARCHAR,
  b1 BINARY,
  b2_var VARBINARY,
  bool1 BOOLEAN,
  d1 DATE,
  t1 TIME,
  ts1 TIMESTAMP,
  ts2_ltz TIMESTAMP_LTZ,
  ts3_ntz TIMESTAMP_NTZ,
  ts4_tz TIMESTAMP_TZ);

SHOW COLUMNS IN TABLE test_show_columns;
Copy
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+
| table_name        | schema_name    | column_name       | data_type                                                                             | null? | default                  | kind   | expression | comment | database_name | autoincrement                         | schema_evolution_record |
|-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------|
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N1                | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  | 5                        | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N2_INT            | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  | TEST_SHOW_COLUMNS.N1 + 5 | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N3_BIGINT         | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  |                          | COLUMN |            |         | MY_DB         | IDENTITY START 1 INCREMENT 1 NOORDER  | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N4_DEC            | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  |                          | COLUMN |            |         | MY_DB         | IDENTITY START 1 INCREMENT 10 NOORDER | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F1                | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F2_DOUBLE         | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F3_REAL           | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S1                | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S2_VAR            | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S3_CHAR           | {"type":"TEXT","length":1,"byteLength":4,"nullable":true,"fixed":false}               | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S4_TEXT           | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | s5_case_sensitive | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | B1                | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":true}  | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | B2_VAR            | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | BOOL1             | {"type":"BOOLEAN","nullable":true}                                                    | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | D1                | {"type":"DATE","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | T1                | {"type":"TIME","precision":0,"scale":9,"nullable":true}                               | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS1               | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS2_LTZ           | {"type":"TIMESTAMP_LTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS3_NTZ           | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS4_TZ            | {"type":"TIMESTAMP_TZ","precision":0,"scale":9,"nullable":true}                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+