Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Update нескольких таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Здравствуйте, Ребята.
Я новичок в SQL, самоучка. Хотел у вас спросить.
У меня есть таблицы:
[Conutries], [Models], [Manufacturers],[Vehicles]. Они связанны таким образом:
[Country] передает ID в [Manufacturers].[CountryID] дальше, из [Manufaturers] передается ID в [Models].[ManufactID], затем из [Models] передается ID в [Vehicle].[ModelID].
Теперь я хочу Update-нуть записи в этих таблицах.
Можно ли сделать это одним запросом? Если возможно, дайте пожалуйста идею.
Спасибо
15 сен 13, 10:18    [14840980]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
Andraptor
Member

Откуда: Ukraine, Kharkiv
Сообщений: 291
adimmat,
Команда UPDATE изменяет одну таблицу за раз.
Что мешает сделать несколько UPDATE подряд и, если нужно быть уверенным что все таблицы проапдейтятся, завернуть все в транзакцию.
А вообще-то в вопросе мало информации... какие именно столбцы нужно изменять...?
15 сен 13, 10:40    [14840992]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Andraptor,

Вот более детальная информация о таблицах, какая таблица из каких столбцов состоит и как они связанны.
[dbo].[Countries]
ID
Country

[dbo].[Manufacturers]
ID
Manufacturer
CountryID

[dbo].[Models]
ID
ManufacturerID
ExplModelDate
DexplModelDate

[dbo].[Vehicles]
ID
ModelID
ExplDate
DexplDate
EngineVolume
EnginePower
INN
BodyNumber
StateNumber
RegistrationDate
DeregistrationDate
DescInfo
Admin
RecordStatus

Связь, думаю, понятно как выглядит. Обновить нужно все поля в [dbo].[Vehicles]
15 сен 13, 13:03    [14841185]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
adimmat
Обновить нужно все поля в [dbo].[Vehicles]

Для этого достаточно одной команды UPDATE. Какое отношение к этому имеют все остальные таблицы?
15 сен 13, 13:06    [14841194]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Гость333,

Если Я обновлю только [dbo].[Vehicles],обновляться ли потом [dbo].[Country],[dbo].[Manufacturers],[dbo].[Models];
То есть, ситуация,например я задал параметры поиска и нашел нужную тачку, теперь я хочу изменить, к примеру, "Country"(т.е страну где она производилась). А все остальное останется как есть. В этом случае, что делать?
15 сен 13, 14:35    [14841326]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
adimmat
Andraptor,

Вот более детальная информация о таблицах, какая таблица из каких столбцов состоит и как они связанны.
[dbo].[Countries]
ID
Country

[dbo].[Manufacturers]
ID
Manufacturer
CountryID

[dbo].[Models]
ID
ManufacturerID
ExplModelDate
DexplModelDate

[dbo].[Vehicles]
ID
ModelID
ExplDate
DexplDate
EngineVolume
EnginePower
INN
BodyNumber
StateNumber
RegistrationDate
DeregistrationDate
DescInfo
Admin
RecordStatus

Связь, думаю, понятно как выглядит. Обновить нужно все поля в [dbo].[Vehicles]
Всё это напишите в виде
CREATE TABLE [dbo].[Countries](ID INT NOT NULL IDENTITY, Country VARCHAR(1000) NOT NULL)
и т.д.
Напишите также скрипты для всех констрейнтов и индексов,
а также версию сервера.
Вы что, правила форума не читали что ли?!

И связи между таблицами опишите, если FOREIGN KEY нет.
15 сен 13, 16:12    [14841447]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
adimmat
То есть, ситуация,например я задал параметры поиска и нашел нужную тачку, теперь я хочу изменить, к примеру, "Country"(т.е страну где она производилась). А все остальное останется как есть. В этом случае, что делать?
Меняете CountryID у этой записи на CountryID той страны, которая нужна.
15 сен 13, 19:11    [14841784]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
adimmat
Гость333,

Если Я обновлю только [dbo].[Vehicles],обновляться ли потом [dbo].[Country],[dbo].[Manufacturers],[dbo].[Models];
То есть, ситуация,например я задал параметры поиска и нашел нужную тачку, теперь я хочу изменить, к примеру, "Country"(т.е страну где она производилась). А все остальное останется как есть. В этом случае, что делать?
У вас не получится изменить страну, где производилась «нужная тачка».

Страна хранится в таблице Manufacturers, поэтому её изменение отразится как для конкретного производителя, так и для всех моделей, им произведенных.

Чтобы можно было изменить страну для конкретной «тачки», ссылка на страну должна быть в таблице Vehicles.
15 сен 13, 19:54    [14841873]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
П-Л
Guest
adimmat
Гость333,

Если Я обновлю только [dbo].[Vehicles],обновляться ли потом [dbo].[Country],[dbo].[Manufacturers],[dbo].[Models];
То есть, ситуация,например я задал параметры поиска и нашел нужную тачку, теперь я хочу изменить, к примеру, "Country"(т.е страну где она производилась). А все остальное останется как есть. В этом случае, что делать?

Данные о стране присутствуют в модели машин опосредодованно. Что значит поменять в модели страну ?

Один вариант, вы хотите технически изменить название страны с UK на United Kingdom. Такое изменение должно быть сделано в таблице стран и по связям автоматически отобразится во всех данных машин.

Другой случАй. Вместо UK вы хотите задать USA. Что это может значить ? Что только данная модель производится в другой стране ? Но стана у вас задается для модели через таблицу производителей. Если там поменять айди UK на айди USA то это означает что всех соделях этого производителя будет изменена страна. Если это не то, что может быть по вашим (необъявленным) функциональным требованиям - значит ошибка в схеме данных, айди страны надо было помещать в таблицу моделей, чтобы разные модели одного и того же произодителя могли выпускаться а разных странах.
16 сен 13, 09:19    [14842654]     Ответить | Цитировать Сообщить модератору
 Re: Update нескольких таблиц.  [new]
adimmat
Member

Откуда: Таджикистан
Сообщений: 180
Ребята, спасибо Вам большое. Я уже все сделал, понял свою ошибку.
Еще раз,огромное спасибо и удачи Вам.
16 сен 13, 14:54    [14844969]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить