Partilhar via


Metadados de parâmetros de Table-Valued adicionais

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure do Azure Synapse AnalyticsAnalytics Platform System (PDW)

Para recuperar metadados para um parâmetro com valor de tabela, um aplicativo chama SQLProcedureColumns. Para um parâmetro com valor de tabela, SQLProcedureColumns retorna uma única linha. Duas colunas adicionais específicas do SQL Server, SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME, foram adicionadas para fornecer informações de esquema e catálogo para tipos de tabela associados a parâmetros com valor de tabela. Em conformidade com a especificação ODBC, SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME aparecem antes de todas as colunas específicas do driver adicionadas em versões anteriores do SQL Server e depois de todas as colunas exigidas pelo próprio ODBC.

A tabela a seguir lista colunas que são significativas para parâmetros com valor de tabela.

Nome da coluna Tipo de dados Valor/comentários
DATA_TYPE Smallint não NULL SQL_SS_TABLE
TYPE_NAME WVarchar(128) não NULL O nome do tipo do parâmetro com valor de tabela.
COLUMN_SIZE Inteiro NULO
BUFFER_LENGTH Inteiro 0
DECIMAL_DIGITS Smallint NULO
NUM_PREC_RADIX Smallint NULO
NULADO Smallint não NULL SQL_NULLABLE
COMENTÁRIOS Varchar NULO
COLUMN_DEF WVarchar(4000) NULO
SQL_DATA_TYPE Smallint não NULL SQL_SS_TABLE
SQL_DATETIME_SUB Smallint NULO
CHAR_OCTET_LENGTH Inteiro NULO
ORDINAL_POSITION Inteiro não NULL A posição ordinal do parâmetro.
IS_NULLABLE Varchar "SIM"
SS_TYPE_CATALOG_NAME WVarchar(128) não NULL O catálogo que contém a definição de tipo para o tipo de tabela do parâmetro com valor de tabela.
SS_TYPE_SCHEMA_NAME WVarchar(128) não NULL O esquema que contém a definição de tipo para o tipo de tabela do parâmetro com valor de tabela.

As colunas WVarchar são definidas como Varchar na especificação ODBC, mas na verdade são retornadas como WVarchar em todos os drivers ODBC recentes do SQL Server. Essa alteração foi feita quando o suporte a Unicode foi adicionado à especificação ODBC 3.5, mas não foi chamado explicitamente.

Para obter metadados adicionais para parâmetros com valor de tabela, um aplicativo usa as funções de catálogo SQLColumns e SQLPrimaryKeys. Antes que essas funções sejam chamadas para parâmetros com valor de tabela, o aplicativo deve definir o atributo de instrução SQL_SOPT_SS_NAME_SCOPE como SQL_SS_NAME_SCOPE_TABLE_TYPE. Esse valor indica que o aplicativo requer metadados para um tipo de tabela em vez de uma tabela real. Em seguida, o aplicativo passa a TYPE_NAME do parâmetro com valor de tabela como o parâmetro TableName. SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME são usados com os CatalogName e parâmetros SchemaName, respectivamente, para identificar o catálogo e o esquema para o parâmetro com valor de tabela. Quando um aplicativo terminar de recuperar metadados para parâmetros com valor de tabela, ele deve definir SQL_SOPT_SS_NAME_SCOPE de volta ao seu valor padrão de SQL_SS_NAME_SCOPE_TABLE.

Quando SQL_SOPT_SS_NAME_SCOPE está definido como SQL_SS_NAME_SCOPE_TABLE, as consultas aos servidores vinculados falham. Chamadas para SQLColumns ou SQLPrimaryKeys com um catálogo que contém um componente de servidor falharão.

Ver também

Parâmetros Table-Valued (ODBC)