Поделиться через


Согласование изменений, внесенных несколькими пользователями (визуальные инструменты для баз данных)

В многопользовательской среде изменение одного и того же объекта могут выполнять одновременно несколько пользователей. Это происходит при работе над структурой объекта в конструкторе таблиц или конструкторе диаграмм баз данных либо при изменении значений, когда они возвращаются на панели результатов конструктора запросов и представлений. Это может приводить к конфликтам, которые придется разрешать.

Конфликты в конструкторе таблиц или диаграмм баз данных

Например, когда один пользователь работает с таблицей в конструкторе таблиц, другой пользователь может попытаться удалить или переименовать данную или связанную с ней таблицу. При попытке сохранить таблицу Диалоговое окно «Обнаружены изменения базы данных» (визуальные инструменты для баз данных) сообщит, что с момента открытия этой таблицы база данных была обновлена.

Кроме того, в этом диалоговом окне выводится список объектов базы данных, на которые повлияет сохранение этой таблицы. Можно выполнить одно из следующих действий.

  • Нажмите кнопку Да — таблица будет сохранена, а в базу данных будут записаны новые значения, указанные в списке.
    Это действие может повлиять на таблицы, совместно использующие одни и те же объекты базы данных. Например, предположим, что редактируется столбец au_id в таблице titleauthors, а в это время другой пользователь работает в таблице authors, связанной с таблицей titleauthors столбцом au_id. Сохранение одной таблицы повлияет на другую. Точно так же, допустим, что другой пользователь задал проверочное ограничение для столбца qty в таблице sales. Удаление столбца qty и сохранение таблицы sales коснется проверочного ограничения другого пользователя.
  • Нажмите кнопку Нет — действие будет отменено.
    После этого можно закрыть таблицу без сохранения. При ее повторном открытии она будет соответствовать таблице в базе данных.
  • Выберите Сохранить текстовый файл — будет сохранен список изменений.
    Список изменений, показанный в диалоговом окне Обнаружены изменения базы данных, можно сохранить в текстовый файл, чтобы затем проанализировать причину изменений, внесенных другим пользователем. Например, если другой пользователь отредактировал таблицу, которая помечена к удалению, то можно проанализировать, следует ли удалять эту таблицу перед обновлением базы данных.

Конфликты в конструкторе запросов и представлений

При запуске запроса или возврате результатов представления данные отображаются в панели представлений. С одним набором данных могут одновременно работать несколько пользователей, что может вызвать конфликты.

Например, допустим, что сотрудники по отдельности выполняют запрос, выводящий все данные в таблице titleauthors. Сотрудник изменяет имя, которое возвращает первая запись, с Barb на Barbara. В этот момент запись содержит имя Barbara, в то время как результирующий набор другого сотрудника содержит запись Barb. Вводите «Barbara» и сохраняете строку. Появляется сообщение с вопросом, как разрешить конфликт.

  • Нажмите кнопку Да — база данных будет обновлена, в нее будут записаны внесенные изменения.
    Они переопределят изменения, внесенные сотрудником.
  • Нажмите кнопку Нет — результирующий набор обновится текущими значениями базы данных.
    Значения, внесенные одним сотрудником, переопределят изменения, внесенные другим.
  • Нажмите кнопку Отмена, если работа продолжается без разрешения конфликта.
    В этом случае невозможно зафиксировать изменения.

См. также

Другие ресурсы

Диалоговое окно «Обнаружены изменения базы данных» (визуальные инструменты для баз данных)

Справка и поддержка

Получение помощи по SQL Server 2005