Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Executar um comando com parâmetros de tabela requer duas fases:
Especifique os tipos de parâmetros.
Associe os dados dos parâmetros.
Table-Valued Especificação do Parâmetros
O consumidor pode especificar o tipo do parâmetro valorado na tabela. Esta informação inclui o nome do tipo de parâmetro com valores de tabela. Inclui também o nome do esquema, caso o tipo de tabela definido pelo utilizador para o parâmetro com valor de tabela não esteja no esquema padrão atual da ligação. Dependendo do suporte ao servidor, o consumidor pode também especificar informações opcionais de metadados, como a ordem das colunas, e pode indicar que todas as linhas de determinadas colunas têm os valores predefinidos.
Para especificar um parâmetro com valor em tabela, o consumidor chama ISSCommandWithParameter::SetParameterInfo, e opcionalmente chama ISSCommandWithParameters::SetParameterProperties. Para um parâmetro com valores de tabela, o campo pwszDataSourceType na estrutura DBPARAMBINDINFO tem um valor de DBTYPE_TABLE. O campo ulParamSize está definido para ~0 para indicar que o comprimento é desconhecido. Propriedades particulares para parâmetros com valores de tabela, como nome do esquema, nome do tipo, ordem das colunas e colunas padrão, podem ser definidas através do ISSCommandWithParameters::SetParameterProperties.
Table-Valued Ligação de parâmetros
Um parâmetro com valores de tabela pode ser qualquer objeto de conjunto de linhas. O fornecedor lê a partir deste objeto enquanto envia parâmetros de valor de tabela para o servidor durante a execução.
Para atribuir o parâmetro de valor na tabela, o consumidor chama IAccessor::CreateAccessor. O campo wType da estrutura DBBINDING para o parâmetro com valores de tabela é definido para DBTYPE_TABLE. O membro pObject da estrutura DBBINDING é não-NULL, e o membro iid do pObject está definido para IID_IRowset ou qualquer outra interface de objetos de conjunto de linhas de parâmetros com valores de tabela. Os campos restantes na estrutura DBBINDING devem ser definidos da mesma forma que são definidos para BLOBs em streaming.
Nas ligações para o parâmetro de tabela e o objeto de linhas associado a um parâmetro de tabela, aplicam-se as seguintes restrições:
Os únicos valores de estado permitidos para dados de colunas de parâmetros de tabela são DBSTATUS_S_ISNULL e DBSTATUS_S_OK. DBSTATUS_S_DEFAULT resultará numa falha, e o valor de estado limitado será definido para DBSTATUS_E_BADSTATUS.
Um parâmetro com valores de tabela pode ser marcado com o DBSTATUS_S_DEFAULT de estado. Os únicos valores válidos são DBSTATUS_S_DEFAULT e DBSTATUS_S_OK. Quando o estado é definido para DBSTATUS_S_DEFAULT, o valor do parâmetro de tabela corresponde a uma tabela vazia.
Colunas de apenas leitura em parâmetros de tabela (colunas de identidade ou calculadas) devem ser marcadas como padrão usando a propriedade SSPROP_PARAM_TABLE_DEFAULT_COLUMNS. Colunas que têm um valor por defeito também devem ser marcadas como por defeito através de SSPROP_PARAM_TABLE_DEFAULT_COLUMNS propriedade para permitir que o valor por defeito seja usado para os valores de dados da coluna para um determinado parâmetro de tabela. O fornecedor ignorará os valores de dados atribuídos às colunas marcadas como padrão.
Os dados serão enviados para o servidor para colunas com DBPROP_COL_AUTOINCREMENT ou SSPROP_COL_COMPUTED, a menos que SSPROP_PARAM_TABLE_DEFAULT também esteja definido.
Ver também
Table-Valued Parâmetros (OLE DB)
Usar Table-Valued Parâmetros (OLE DB)