SQLColumns

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

SQLColumns retorna SQL_SUCCESS se existem ou não valores para os parâmetros CatalogName, TableName ou ColumnName. SQLFetch retorna SQL_NO_DATA quando são usados valores inválidos nesses parâmetros.

Observação

Para tipos de valores grandes, os parâmetros de todos os comprimentos serão retornados com um valor SQL_SS_LENGTH_UNLIMITED.

SQLColumns podem ser executados em um cursor de servidor estático. Uma tentativa de executar SQLColumns em um cursor atualizável (dinâmico ou conjunto de teclas) retornará SQL_SUCCESS_WITH_INFO indicando que o tipo de cursor foi alterado.

O driver ODBC do SQL Server Native Client oferece suporte a informações de relatório para tabelas em servidores vinculados aceitando um nome de duas partes para o parâmetro CatalogName : Linked_Server_Name.Catalog_Name.

Para ODBC 2.x aplicativos que não usam curingas em TableName, SQLColumns retorna informações sobre quaisquer tabelas cujos nomes correspondam a TableName e sejam de propriedade do usuário atual. Se o usuário atual não possuir nenhuma tabela cujo nome corresponda ao parâmetro TableName, SQLColumns retornará informações sobre quaisquer tabelas pertencentes a outros usuários em que o nome da tabela corresponda ao parâmetro TableName. Para ODBC 2.x aplicativos usando curingas, SQLColumns retorna todas as tabelas cujos nomes correspondem a TableName. Para ODBC 3.x aplicativos SQLColumns retorna todas as tabelas cujos nomes correspondem a TableName, independentemente do proprietário ou se curingas são usados.

A tabela a seguir lista as colunas retornadas pelo conjunto de resultados:

Nome da coluna Descrição
DATA_TYPE Retorna SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR para os tipos de dados varchar(max ).
TYPE_NAME Retorna "varchar", "varbinary" ou "nvarchar" para os tipos de dados varchar(max), varbinary(max) e nvarchar(max).
COLUMN_SIZE Retorna SQL_SS_LENGTH_UNLIMITED para tipos de dados varchar(max) indicando que o tamanho da coluna é ilimitado.
BUFFER_LENGTH Retorna SQL_SS_LENGTH_UNLIMITED para tipos de dados varchar(max) indicando que o tamanho do buffer é ilimitado.
SQL_DATA_TYPE Retorna SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR para os tipos de dados varchar(max ).
CHAR_OCTET_LENGTH Retorna o comprimento máximo de uma coluna char ou binary. Retorna 0 para indicar que o tamanho é ilimitado.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Retorna o nome do catálogo no qual é definido o nome de uma coleção de esquemas XML. Se não for possível localizar o nome do catálogo, essa variável conterá uma cadeia de caracteres vazia.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Retorna o nome do esquema no qual é definido o nome de uma coleção de esquemas XML. Se não for possível localizar o nome do esquema, essa variável conterá uma cadeia de caracteres vazia.
SS_XML_SCHEMACOLLECTION_NAME Retorna o nome de uma coleção de esquemas XML. Se não for possível localizar o nome, essa variável conterá uma cadeia de caracteres vazia.
SS_UDT_CATALOG_NAME O nome do catálogo que contém o UDT (tipo definido pelo usuário).
SS_UDT_SCHEMA_NAME O nome do esquema que contém o UDT.
SS_UDT_ASSEMBLY_TYPE_NAME O nome qualificado do assembly do UDT.

Para UDTs, a coluna TYPE_NAME existente é usada para indicar o nome do UDT; portanto, nenhuma coluna adicional para ele deve ser adicionada ao conjunto de resultados de SQLColumns ou SQLProcedureColumns. O DATA_TYPE de uma coluna ou parâmetro UDT é SQL_SS_UDT.

Para o UDT de parâmetros, você pode usar os novos descritores específicos do driver definidos acima para obter ou definir as propriedades extra de metadados de um UDT, caso o servidor retorne ou exija essas informações.

Quando um cliente se conecta ao SQL Server e chama SQLColumns, o uso de valores NULL ou curinga para o parâmetro de entrada de catálogo não retornará informações de outros catálogos. Em vez disso, serão retornadas apenas informações sobre o catálogo atual. O cliente pode primeiro chamar SQLTables para determinar em qual catálogo a tabela desejada está localizada. O cliente pode usar esse valor de catálogo para o parâmetro de entrada de catálogo em sua chamada para SQLColumns para recuperar informações sobre as colunas nessa tabela.

SQLColumns e parâmetros com valor de tabela

O conjunto de resultados retornado pelo SQLColumns depende da configuração do SQL_SOPT_SS_NAME_SCOPE. Para obter mais informações, consulte SQLSetStmtAttr. As colunas a seguir foram adicionadas para parâmetros com valor de tabela:

Nome da coluna Tipo de dados Contents
SS_IS_COMPUTED Smallint Para uma coluna em um TABLE_TYPE, será SQL_TRUE se a coluna for uma coluna computada; caso contrário, SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE se a coluna for uma coluna de identidade; caso contrário, SQL_FALSE.

Para obter mais informações sobre parâmetros com valor de tabela, consulte Parâmetros com valor de tabela (ODBC).

Suporte de SQLColumns a recursos aprimorados de data e hora

Para obter informações sobre os valores retornados para tipos de data/hora, consulte Metadados do catálogo.

Para obter mais informações, consulte Aprimoramentos de data e hora (ODBC).

Suporte de SQLColumns para UDTs CLR grandes

SQLColumns oferece suporte a grandes tipos definidos pelo usuário (UDTs) CLR. Para obter mais informações, consulte Tipos definidos pelo usuário (ODBC) CLR grandes.

Suporte de SQLColumns para colunas esparsas

Duas colunas específicas do SQL Server foram adicionadas ao conjunto de resultados para SQLColumns:

Nome da coluna Tipo de dados Descrição
SS_IS_SPARSE Smallint Se a coluna for uma coluna esparsa, será SQL_TRUE; caso contrário, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Se a coluna for a coluna column_set , isso é SQL_TRUE e, caso contrário, SQL_FALSE.

Em conformidade com a especificação ODBC, SS_IS_SPARSE e SS_IS_COLUMN_SET aparecem antes de todas as colunas específicas do driver que foram adicionadas às versões do SQL Server anteriores ao SQL Server 2008 (10.0.x) e depois de todas as colunas exigidas pelo próprio ODBC.

O conjunto de resultados retornado pelo SQLColumns depende da configuração do SQL_SOPT_SS_NAME_SCOPE. Para obter mais informações, consulte SQLSetStmtAttr.

Para obter mais informações sobre colunas esparsas no ODBC, consulte Suporte a colunas esparsas (ODBC).

Confira também

Função SQLColumns
Detalhes da implementação da API do ODBC