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

Откуда: Тольятти
Сообщений: 47
Всем привет! Народ, помогите, не могу правильно составить SQL-запрос.
Вот задача:

Есть таблицы:
«Заявки» с полями («Код заявки» (ключ), «Код клиента (внешний ключ)», «Название», «Адрес»)
«Клиенты» с полями («Код клиента» (ключ), «Название», «Адрес»)
Таблицы связаны по ключевым полям.

Нужно написать запрос на SQL, выполняющий обновление «Адреса» заявки таблицы «Заявки на доставку» значениями «Адреса» из таблицы «Клиенты». Т.е. если мы обновляем значение поля Клиенты.Адрес, то автоматически должно меняться поле Адрес нужной записи в таблице "Заявки".

Пока написал вот это:

Create Trigger Tr1 On Clients
For UPDATE
As 
if update(Address)
	update Requests
	Set Address=(Select Address From inserted Where inserted.ID=Requests.Client_ID_FK)


Но этот запрос обновляет ВСЕ записи в таблице Заявки, а не только нужную. Помогите пожалуйста.
17 дек 16, 16:19    [20015977]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное обновление таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Create Trigger Tr1 On Clients
For UPDATE
As 
if update(Address)
	update a
	Set a.Address= b.Address
        from Requests a
        inner join inserted b on a.ID = b.Client_ID_FK
17 дек 16, 16:33    [20016007]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное обновление таблиц  [new]
fenix_63
Member

Откуда: Тольятти
Сообщений: 47
Пишет:

Недопустимое имя столбца "Client_ID_FK".
Вот структура таблиц:

Фото

К сообщению приложен файл. Размер - 6Kb
17 дек 16, 18:15    [20016209]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное обновление таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну поля напишите правильные в условии соединения. Это же так сложно?
17 дек 16, 18:24    [20016239]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное обновление таблиц  [new]
fenix_63
Member

Откуда: Тольятти
Сообщений: 47
Действительно, спасибо большое! Всё работает !!!

Create Trigger Tr1 On Clients
For UPDATE
As 
if update(Address)
	update a
	Set a.Address= b.Address
        from Requests a
		JOIN inserted b ON a.Client_ID_FK = b.ID
17 дек 16, 19:01    [20016356]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить