SQLColumns
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics
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 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 são 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 todas as 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 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 do 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 | 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 ODBC (Parâmetros com valor de tabela).
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 Melhorias de data e hora (ODBC).
Suporte de 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 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 column_set coluna, isso é 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 (10.0.x) 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).