Изменение данных при использовании запроса с объединением

Следует соблюдать осторожность при изменении данных в запросе, применяющем операцию объединения. Проблем не возникнет, если вы захотите изменить детали из таблицы-потомка. В примере на рис. 6.19 достаточно легко изменить поля DatePlaced или StatusID в записи о заказе.

Но что произойдет, если вы измените одно из значений таблицы-родителя, например, имя или фамилию клиента? Очевидно, что сведения об одном и том же клиенте могут выводиться в запросе несколько раз. (Например, в запросе на рис. 6.19 отображены два заказа клиента с именем Toby.) Если изменить имя в одном месте, программа Access автоматически изменит информацию в таблице Customers и затем обновит весь запрос. Таким образом, если вы замените "Toby" на "Топу" на рис. 6.19, Access обновит вторую и третью строки на листе данных.

Проблема возникает, когда вы хотите изменить связь между записью о заказе и записью клиента. Например, вы хотите отредактировать заказ, сделанный Toby, так, чтобы в БД было записано, что этот заказ сделан клиентом Lisa. Но этого сделать невозможно с помощью редактирования в запросе полей FirstName и LastName. (Если вы отредактируете имя и фамилию, то просто измените запись о Toby в таблице Customers.) Вместо этого вам нужно откорректировать поле CustomerID в таблице Orders так, чтобы оно указывало на нужного клиента. Но в запрос, показанный на рис. 6.19, иоле CustomerID не включено, поэтому изменить связь невозможно.

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100