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).