Você pode receber uma mensagem de erro ao tentar usar SQL Server Management Studio para atualizar uma linha de uma tabela no SQL Server

Este artigo ajuda você a resolve o problema que ocorre quando você tenta atualizar uma tabela usando SQL Server Management Studio em SQL Server.

Versão original do produto: SQL Server
Número de KB original: 925719

Sintomas

Considere o seguinte cenário. Você tenta usar SQL Server Management Studio para atualizar uma tabela no Microsoft SQL Server. Em Pesquisador de Objetos, clique com o botão direito do mouse no nome da tabela e clique em Abrir Tabela. Você atualiza uma linha da tabela. Nesse cenário, você pode receber uma das seguintes mensagens de erro inesperadamente na caixa de diálogo microsoft SQL Server Management Studio:

  • Mensagem de erro 1

    Os dados foram alterados desde que o painel Resultados foi recuperado pela última vez. Deseja salvar suas alterações agora?

    (Erro de controle de simultaneidade otimista)

    Clique em Sim para confirmar suas alterações no banco de dados de qualquer maneira.

    Clique em Não para descartar sua alteração e recuperar os dados atuais dessa linha.

    Clique em Cancelar para continuar a edição.

    Observação

    Se você clicar em Sim nesta caixa de diálogo mensagem de erro, a linha será atualizada corretamente.

  • Mensagem de erro 2

    Nenhuma linha foi atualizada.

    Os dados na linha X não foram confirmados.

    Fonte do erro: Microsoft.VisualStudio.DataTools.

    Mensagem de Erro: os valores de linha atualizados ou excluídos não tornam a linha exclusiva ou alteram várias linhas (linhas N ).

    Corrija os erros e tente novamente ou pressione o ESC para cancelar as alterações.

    Observação

    Se você receber essa caixa de diálogo de mensagem, não poderá atualizar a linha.

Esse problema ocorre se as seguintes condições forem verdadeiras:

  • A tabela contém uma ou mais colunas do tipo de dados de texto ou ntext.

  • O valor de uma dessas colunas contém os seguintes caracteres:

    • Sinal percentual (%)
    • Sublinhado (_)
    • Colchete esquerdo ([)
  • A tabela não contém uma chave primária.

Observação

Esse problema também ocorre quando você tenta usar o Table Designer no Microsoft Visual Studio para atualizar uma tabela que está em um banco de dados SQL Server.

Motivo

Esse problema ocorre porque SQL Server Management Studio gera uma instrução SQL incorreta para a operação de atualização. Quando a tabela não contém uma chave primária, os valores de todas as colunas são usados para identificar a linha a ser atualizada. Quando SQL Server Management Studio constrói essa instrução, o operador de comparação incorreto (=) é usado para comparar colunas dos tipos de dados de texto, ntext ou imagem.

Solução alternativa

Para contornar esse problema, crie uma nova janela de consulta no SQL Server Management Studio. Em seguida, execute uma instrução SQL UPDATE para atualizar a linha na tabela.

Observação

Se você receber a primeira mensagem de erro mencionada na seção Sintomas , clique em Sim para atualizar a linha.

Referências

UPDATE (Transact-SQL)