SQLColumns

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)

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

Note

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

O SQLColumns pode ser executado num cursor de servidor estático. Uma tentativa de executar SQLColumns num cursor atualizável (dinâmico ou de conjunto de chaves) devolverá SQL_SUCCESS_WITH_INFO indicando que o tipo de cursor foi alterado.

O driver ODBC SQL Server Native Client suporta informações de reporte para tabelas em servidores ligados, aceitando um nome em duas partes para o parâmetro CatalogName: Linked_Server_Name.Catalog_Name.

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

A tabela seguinte lista as colunas devolvidas pelo conjunto de resultados:

Nome da coluna Description
Tipo de Dados Devolve SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR para os tipos de dados varchar(max ).
TYPE_NAME Devolve "varchar", "varbinary" ou "nvarchar" para os tipos de dados varchar(max), varbinary(max) e nvarchar(max ).
TAMANHO_DA_COLUNA Devolve SQL_SS_LENGTH_UNLIMITED para tipos de dados varchar(max ) indicando que o tamanho da coluna é ilimitado.
BUFFER_LENGTH Devolve SQL_SS_LENGTH_UNLIMITED para tipos de dados varchar(max ) indicando que o tamanho do buffer é ilimitado.
SQL_DATA_TYPE Devolve SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR para os tipos de dados varchar(max ).
CHAR_OCTET_LENGTH Devolve o comprimento máximo de um caractero ou coluna binária. Retorna 0 para indicar que o tamanho é ilimitado.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Devolve o nome do catálogo onde está definido o nome da coleção de esquemas XML. Se o nome do catálogo não for encontrado, então esta variável contém uma cadeia vazia.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Devolve o nome do esquema onde está definido o nome da coleção de esquemas XML. Se o nome do esquema não for encontrado, então essa variável contém uma cadeia vazia.
SS_XML_SCHEMACOLLECTION_NAME Devolve o nome de uma coleção de esquemas XML. Se o nome não for encontrado, então essa variável contém uma cadeia vazia.
SS_UDT_CATALOG_NAME O nome do catálogo que contém o UDT (tipo definido pelo utilizador).
SS_UDT_SCHEMA_NAME O nome do esquema que contém o UDT.
SS_UDT_ASSEMBLY_TYPE_NAME O nome qualificado pela assembleia da UDT.

Para UDTs, a coluna de 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. A DATA_TYPE para uma coluna ou parâmetro UDT é SQL_SS_UDT.

Para o UDT dos parâmetros, pode usar os novos descritores específicos do driver definidos acima para obter ou definir as propriedades adicionais de metadados de um UDT, caso o servidor devolva ou necessite desta informação.

Quando um cliente se liga ao SQL Server e chama SQLColumns, usar valores NULL ou wild card para o parâmetro de entrada do catálogo não retorna informação de outros catálogos. Em vez disso, apenas serão devolvidas informações sobre o catálogo atual. O cliente pode primeiro chamar o SQLTables para determinar em que catálogo se encontra a tabela desejada. O cliente pode então usar esse valor de catálogo como parâmetro de entrada de catálogo na sua chamada ao SQLColumns para obter informação sobre as colunas dessa tabela.

SQLColumns e Parâmetros Table-Valued

O conjunto de resultados devolvido pelo SQLColumns depende da definição de SQL_SOPT_SS_NAME_SCOPE. Para mais informações, consulte SQLSetStmtAttr. As seguintes colunas foram adicionadas para parâmetros com valores de tabela:

Nome da coluna Tipo de dados Conteúdos
SS_IS_COMPUTED Smallint Para uma coluna numa TABLE_TYPE, isto é SQL_TRUE se a coluna for uma coluna calculada; caso contrário, SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE se a coluna for uma coluna identidade; caso contrário, SQL_FALSE.

Para mais informações sobre parâmetros com valores de tabela, veja Table-Valued Parâmetros (ODBC).

Suporte SQLColumns para funcionalidades melhoradas de data e hora

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

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

Suporte SQLColumns para UDTs CLR de grande porte

O SQLColumns suporta grandes tipos CLR definidos pelo utilizador (UDTs). Para obter mais informações, consulte Large CLR User-Defined Types (ODBC).

Suporte SQLColumns para colunas esparsas

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

Nome da coluna Tipo de dados Description
SS_IS_SPARSE Smallint Se a coluna for esparsa, isto é SQL_TRUE; caso contrário, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Se a coluna for a coluna column_set , isto é 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 (10.0.x), e após todas as colunas exigidas pelo próprio ODBC.

O conjunto de resultados devolvido pelo SQLColumns depende da definição de SQL_SOPT_SS_NAME_SCOPE. Para mais informações, consulte SQLSetStmtAttr.

Para mais informações sobre colunas esparsas em ODBC, consulte Suporte a Colunas Esparsas (ODBC).