Compartilhar via


SQLColumns

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 valor grandes, todos os parâmetros de comprimento serão retornados com um valor de SQL_SS_LENGTH_UNLIMITED.

SQLColumns pode ser executado em um cursor de servidor estático. Uma tentativa de execução 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 no TableName, SQLColumns retorna informações sobre tabelas cujos nomes correspondem a TableName e pertencem ao usuário atual. Se o usuário atual não tiver 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 os 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 os tipos de dados "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 binária ou char. 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 para 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 ou SQLColumnsSQLProcedureColumns. O DATA_TYPE de uma coluna ou parâmetro UDT é SQL_SS_UDT.

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

Quando um cliente se conecta ao SQL Server e chama SQLColumns, usar valores NULL ou curinga para o parâmetro de entrada do catálogo não retornará informações de outros catálogos. Em vez disso, somente informações sobre o catálogo atual serão retornadas. 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 do catálogo em sua chamada para SQLColumns para recuperar informações sobre as colunas nessa tabela.

Parâmetros SQLColumns e Table-Valued

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 seguintes colunas foram adicionadas para parâmetros com valor de tabela:

Nome da coluna Tipo de dados Conteúdos
SS_IS_COMPUTED Smallint Para uma coluna em um TABLE_TYPE, isso 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 ODBC (Parâmetros com valor de tabela).

Suporte a SQLColumns para recursos avançados 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 Melhorias de data e hora (ODBC).

Suporte a SQLColumns para UDTs CLR grandes

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

Suporte a 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, esta será SQL_TRUE; caso contrário, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Se a coluna for a column_set coluna, isso 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 às versões do SQL Server anteriores ao 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 ODBC (Suporte a Colunas Esparsas).

Consulte Também

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