При попытке использовать SQL Server Management Studio для обновления строки таблицы в SQL Server может появиться сообщение об ошибке

Эта статья поможет устранить проблему, которая возникает при попытке обновить таблицу с помощью SQL Server Management Studio в SQL Server.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 925719

Симптомы

Рассмотрим следующий сценарий. Вы пытаетесь использовать SQL Server Management Studio для обновления таблицы в Microsoft SQL Server. В обозреватель объектов щелкните правой кнопкой мыши имя таблицы и выберите команду Открыть таблицу. Вы обновляете строку таблицы. В этом сценарии в диалоговом окне Microsoft SQL Server Management Studio может неожиданно появилось одно из следующих сообщений об ошибке:

  • Сообщение об ошибке 1

    Данные изменились с момента последнего получения области Результаты. Сохранить изменения сейчас?

    (Ошибка управления оптимистическим параллелизмом)

    Нажмите кнопку Да, чтобы зафиксировать изменения в базе данных.

    Нажмите кнопку Нет, чтобы отменить изменение и получить текущие данные для этой строки.

    Нажмите кнопку Отмена, чтобы продолжить редактирование.

    Примечание.

    Если щелкнуть Да в этом диалоговом окне сообщения об ошибке, строка будет обновлена правильно.

  • Сообщение об ошибке 2

    Строка не обновлена.

    Данные в строке X не зафиксированы.

    Источник ошибки: Microsoft.VisualStudio.DataTools.

    Сообщение об ошибке. Обновленные или удаленные значения строк либо не делают строку уникальной, либо изменяют несколько строк (N строк).

    Исправьте ошибки и повторите попытку или нажмите клавишу ESC, чтобы отменить изменения.

    Примечание.

    Если появится диалоговое окно этого сообщения, вы не сможете обновить строку.

Эта проблема возникает, если выполняются следующие условия:

  • Таблица содержит один или несколько столбцов типа данных text или ntext.

  • Значение одного из этих столбцов содержит следующие символы:

    • Знак процента (%)
    • Подчеркивание (_)
    • Левая скобка ([)
  • Таблица не содержит первичный ключ.

Примечание.

Эта проблема также возникает при попытке использовать Designer таблиц в Microsoft Visual Studio для обновления таблицы, которая находится в базе данных SQL Server.

Причина

Эта проблема возникает из-за того, что SQL Server Management Studio создает неправильную инструкцию SQL для операции обновления. Если таблица не содержит первичный ключ, значения всех столбцов используются для идентификации обновляемой строки. Когда SQL Server Management Studio создает эту инструкцию, неправильный оператор сравнения (=) используется для сравнения столбцов типов данных text, ntext или image.

Обходной путь

Чтобы обойти эту проблему, создайте новое окно запроса в SQL Server Management Studio. Затем выполните инструкцию SQL UPDATE , чтобы обновить строку в таблице.

Примечание.

Если появляется первое сообщение об ошибке, указанное в разделе Симптомы , можно нажать кнопку Да , чтобы обновить строку.

Ссылки

UPDATE (Transact-SQL)