Compartilhar via


SQLColumns

SQLColumns retorna SQL_SUCCESS se existem 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.

É possível executar SQLColumns em um cursor de servidor estático. Uma tentativa de executar SQLColumns em um cursor atualizável (dinâmico ou conjunto de chaves) retornará SQL_SUCCESS_WITH_INFO, indicando que o tipo de cursor foi alterado.

O driver ODBC do SQL Server Native Client dá 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 todas as tabelas cujos nomes correspondem a TableName e pertencem ao 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 que usam 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 caracteres curinga 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 ela 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 a SQL Server e chama SQLColumns, usar valores NULL ou cartão curinga para o parâmetro de entrada do 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. Em seguida, 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 por SQLColumns depende da configuração de 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 Sumário
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 de catálogo.

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

Suporte de SQLColumns para UDTs CLR grandes

SQLColumns dá suporte a UDTs grandes do CLR. Para obter mais informações, consulte Tipos de User-Defined CLR grandes (ODBC).

Suporte de SQLColumns para colunas esparsas

Duas SQL Server colunas específicas 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, será SQL_TRUE; 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 a SQL Server versões anteriores a SQL Server 2008 e depois de todas as colunas exigidas pelo próprio ODBC.

O conjunto de resultados retornado por SQLColumns depende da configuração de 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).

Consulte Também

Função SQLColumns
ODBC API Implementation Details