Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema 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).