Compartilhar via


Caixa de Diálogo Advanced SQL Generation Options

Permite você controlar como procedimentos armazenados ou instruções SQL são criadas para um adaptador.A caixa de diálogo aparece quando você clicar no botão Advanced Options na página SQL statements de um dos assistentes de dados.As opções nesta caixa de diálogo pertencem todas às instruções ou procedimentos que são chamados como parte de um procedimento de atualização (por exemplo, CustomersTableAdapter.Update(DataTable)).

Lista User Interface Element

  • Gerar instruções Insert, Update e Delete
    Quando selecionado, o assistente criará instruções SQL ou procedimentos armazenados para os objetos UpdateCommand,InsertCommand e DeleteCommand do adaptador.(As especificações da instrução ou procedimento a serem gerados são controladas pelo painel Choose a Query Type do assistente.) Se esta caixa de seleção estiver desmarcada, as opções restantes na caixa de diálogo estão desativadas, já que elas não se aplicam.

    Normalmente, desmarcar essa caixa de seleção sob as seguintes circunstâncias:

    • O adaptador será usado somente para ler dados de uma fonte de dados, não para gravá-los novamente.Ao desmarcar esta caixa, você reduz a quantidade de código em seu formulário ou componente.

    • Você irá preencher os comandos mesmo após ter concluído o assistente.

    Se a caixa está desmarcada e não houver nenhuma instrução ou procedimentos armazenados para os objetos UpdateCommand,InsertCommand ou DeleteCommand, chamar o método Update do adaptador de dados não fará nada.

  • Usar concorrência otimista
    Quando selecionado, o assistente gera um comando SQL com uma cláusula WHERE que corresponde o valor de cada coluna no registro sendo atualizado com o registro correspondente no banco de dados.

    Observação:

    Essa opção está disponível somente se o Gerar INSERT, atualização e comandos de excluir está selecionada.

    Por exemplo, a sintaxe de uma instrução de atualização gerada usando essa opção pode ser:

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?) AND (CompanyName = ?) AND 
          (Phone = ? OR ? IS NULL AND Phone IS NULL);
    

    Se esta caixa de seleção estivesse desmarcada, a sintaxe seria:

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?)
    

    O efeito da verificação de cada valor da coluna é que o comando falhará se qualquer coluna for alterada, o que acontece se outro usuário alterar o registro depois que ele for lido em seu dataset.Se a opção não for definida e a cláusula WHERE simplesmente localiza o registro, as alterações feitas por outros usuários podem potencialmente ser substituídas sem aviso pela atualização.

    Para obter mais informações sobre verificação de concorrência ao atualizar de um DataSet, consulte Introdução a simultaneidade de dados do ADO.NET.

  • Atualizar a tabela de dados
    Quando selecionado, o assistente gera uma instrução SELECT para cada comando Update e Insert.

    Observação:

    Essa opção está disponível somente se o Gerar INSERT, atualização e comandos de excluir está selecionada.

    A instrução Select é adicionada ao objeto de comando correspondente no adaptador e é executada imediatamente após os comandos Update ou Insert terminarem.A instrução Select está configurada para retornar apenas um registro, isto é, a versão atualizada do registro que tenha sido atualizado.

    Observação:

    Você pode adicionar várias instruções para a CommandText propriedade de objeto de comando do adaptador, delimitando as instruções com ponto-e-vírgula (;).

    Obtendo uma nova versão do registro, são gravados valores atualizados de coluna para esse registro no dataset, incluindo:

    • Colunas onde o banco de dados preenche um valor padrão.

    • Colunas de incrementos automáticos.

    • Colunas de timestamp.

    • Colunas afetadas pelo resultado de um disparador do banco de dados.

    Como esta opção faz que duas instruções sejam executadas para cada atualização (a instrução Update e a instrução Select seguinte), ela pode ser ineficiente quando a maioria dos registros em um dataset estão sendo atualizados.Nesse caso, ela é mais eficiente simplesmente preenchendo novamente toda a tabela de dados de uma vez, depois que todas as atualizações sejam executadas.

    Observação:

    A atualização da tabela de dados só tem suporte em bancos de dados que oferecem suporte a lotes de instruções SQL.Por exemplo, o Microsoft Access não pode atualizar a tabela de dados no mesmo comando que efetuar outras operações.

Consulte também

Conceitos

O que Há de Novo em Dados

Exibindo visão geral de dados

Outros recursos

Explicações Passo a passo sobre Dados

Conectando-se a Dados no Visual Studio

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Exibindo dados em formulários em aplicativos do Windows

Editar dados no seu aplicativo

Validando Dados

Salvando dados