SHOW COLUMNS

Lista as colunas nas tabelas ou exibições para as quais você tem privilégios de acesso. Este comando pode ser usado para listar as colunas de uma tabela/exibição/esquema/banco de dados especificado (ou o esquema/banco de dados atual da sessão), ou sua conta inteira.

Consulte também:

DESCRIBE TABLE

Exibição COLUMNS (Information Schema)

Sintaxe

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

Parâmetros

LIKE '<padrão>'

Filtra a saída do comando pelo nome do objeto. O filtro utiliza correspondência de padrão que não diferencia maiúsculas e minúsculas, com suporte para caracteres curinga SQL (% e _).

Por exemplo, os seguintes padrões retornam os mesmos resultados:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> }

Especifica o escopo do comando, que determina se o comando lista registros apenas para o banco de dados, esquema, tabela ou exibição atual/especificado ou em toda a sua conta:

Se você especificar a palavra-chave ACCOUNT, então o comando recuperará os registros de todos os esquemas em todos os bancos de dados da conta atual.

Se você especificar a palavra-chave DATABASE, então:

  • Se você especificar um db_name, então o comando recupera registros para todos os esquemas do banco de dados especificado.

  • Se você não especificar um db_name, então:

    • Se houver um banco de dados atual, então o comando recuperará os registros de todos os esquemas do banco de dados atual.

    • Se não houver um banco de dados atual, então o comando recuperará registros para todos os bancos de dados e esquemas da conta.

Se você especificar a palavra-chave SCHEMA, então:

  • Se você especificar um nome de esquema qualificado (por exemplo, my_database.my_schema), então o comando recuperará registros para o banco de dados e esquema especificado.

  • Se você especificar um schema_name não qualificado, então:

    • Se houver um banco de dados atual, então o comando recupera os registros para o esquema especificado no banco de dados atual.

    • Se não houver um banco de dados atual, então o comando exibe o erro SQL compilation error: Object does not exist, or operation cannot be performed.

  • Se você não especificar um schema_name, então:

    • Se houver um banco de dados atual, então:

      • Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.

      • Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.

    • Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.

Se você especificar a palavra-chave TABLE sem um table_name, então:

  • Se houver um banco de dados atual, então:

    • Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.

    • Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.

  • Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.

Se você especificar um <nome_tabela> (com ou sem a palavra-chave TABLE), então:

  • Se você especificar um <nome_tabela> totalmente qualificado (por exemplo, my_database_name.my_schema_name.my_table_name), então o comando recuperará todos os registros para a tabela especificada.

  • Se você especificar um esquema qualificado <nome_tabela> (por exemplo, my_schema_name.my_table_name), então:

    • Se houver um banco de dados atual, o comando recupera todos os registros da tabela especificada.

    • Se não existir um banco de dados atual, então o comando exibe um erro semelhante a Cannot perform SHOW <tipo_objeto>. This session does not have a current database....

  • Se você especificar um <nome_tabela não qualificado>, então:

    • Se houver um banco de dados atual e um esquema atual, então o comando recupera os registros para a tabela especificada no esquema atual do banco de dados atual.

    • Se não existir um banco de dados atual ou se não existir um esquema atual, então o comando exibirá um erro semelhante a: SQL compilation error: <objeto> does not exist or not authorized..

Se você especificar a palavra-chave VIEW ou um nome de exibição, as regras para exibições são paralelas às regras para tabelas.

Padrão: depende se a sessão tem ou não um banco de dados em uso no momento:

  • Banco de dados: DATABASE é o padrão (ou seja, o comando retorna os objetos nos quais você tem privilégios para visualizar no banco de dados).

  • Sem banco de dados: ACCOUNT é o padrão (ou seja, o comando retorna os objetos que você tem privilégios de visualização em sua conta).

Notas de uso

  • As colunas que começam com o prefixo is_ retornam Y (sim) ou N (não).

  • O comando não precisa de um warehouse em funcionamento para ser executado.

  • O comando retorna um máximo de 10 mil registros para o tipo de objeto especificado, como ditado pelos privilégios de acesso para a função usada para executar o comando; quaisquer registros acima do limite 10 mil não são retornados, mesmo com um filtro aplicado.

    Para visualizar resultados para os quais existem mais de 10.000 registros, consulte a visualização correspondente (se houver) em Snowflake Information Schema.

  • Para pós-processar a saída deste comando, você pode usar a função RESULT_SCAN, que trata a saída como uma tabela que pode ser consultada.

  • Se você usar a palavra-chave VIEW e especificar um nome de exibição, a exibição pode ser uma exibição materializada ou uma exibição não materializada.

Saída

A saída do comando fornece propriedades de coluna e metadados nas seguintes colunas:

Coluna

Descrição

table_name

Nome da tabela a qual pertencem as colunas.

schema_name

Esquema para a tabela.

column_name

Nome da coluna.

data_type

Tipo de dados da coluna e propriedades aplicáveis, tais como comprimento, precisão, escala, nulo etc.; observe que as colunas de caracteres e numéricas exibem seu tipo de dados genéricos em vez de seu tipo de dados definido (isto é, TEXT para todos os tipos de caracteres, FIXED para todos os tipos numéricos de ponto fixo e REAL para todos os tipos numéricos de ponto flutuante).

null?

Se a coluna pode conter valores NULL.

default

Valor padrão, se houver, definido para a coluna.

kind

Não aplicável para colunas (sempre exibe COLUMN como o valor).

expression

comment

Comentário, se houver, para a coluna.

database_name

Banco de dados para a tabela.

autoincrement

Valores de início e incremento automáticos, se houver, para a coluna. Se a coluna tiver a propriedade NOORDER, o valor incluirá NOORDER (por exemplo, IDENTITY START 1 INCREMENT 1 NOORDER). Caso contrário, o valor incluirá ORDER.

SchemaEvolutionRecord

Registra informações sobre a última evolução do esquema acionada para uma determinada coluna da tabela. Esta coluna contém os seguintes subcampos:

  • EvolutionType: o tipo de evolução do esquema acionado (ADD_COLUMN ou DROP_NOT_NULL).

  • EvolutionMode: o mecanismo de ingestão de acionamento (COPY ou SNOWPIPE).

  • FileName: o nome do arquivo que acionou a evolução.

  • TriggeringTime: o tempo aproximado em que a coluna evoluiu.

  • QueryId ou PipeID: um identificador exclusivo da consulta ou canal de acionamento (QUERY ID para COPY ou PIPE ID para SNOWPIPE).

Exemplos

create or replace table dt_test (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,
                                 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 dt_test;

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