Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Тригер и 3 таблицы  [new]
Мастер Чифир
Guest
Помогите пожалуйста в написании кода тригера. Есть 3 таблицы: tovar, klient_tovar, pokupka. Т.е. код товара и клиента записывается в таблицу klient_tovar, а уже код klienta_tovara записывается в таблице pokupka. Розничная цена записана в таблице товар. Мне нужно через тригер сделать, чтобы подсчитывалась сумма покупки, т.е. количество*розничную цену и результат записывался в столбец stoimost_pokupki. Все столбцы показаны на картинках Картинка с другого сайта. Картинка с другого сайта.Картинка с другого сайта.
2 июн 13, 18:42    [14380908]     Ответить | Цитировать Сообщить модератору
 Re: Тригер и 3 таблицы  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Мастер Чифир,
Рекомендации по оформлению сообщений
2. Прежде чем создать новую тему, попробуйте найти ответ в FAQ или воспользоваться Поиском по форуму. Кроме того, существует документация (очень хорошая!) самого MS SQLServer (ее название Books OnLine, в просторечье BOL) как в виде отдельного файла так и в Интернете. А также целая база знаний, созданная фирмой Microsoft, которая называется Knowledge Base
Не забудьте также проверить ТОП 10 самых популярных вопросов.

4. Сообщайте пожалуйста полную версию вашего MS SQL Server. Т.е. со всеми номерами сервисаков, патчей и фиксов. Лучше всего, если Вы приведете в своем сообщении результат запроса select @@version.
Неплохо также сообщать какое клиентское приложение (среду разработки) Вы используете, а так же механизм доступа клиента к серверу (DB-Library, ODBC, ADO, что-то другое).
Можно сообщить краткие характеристики оборудования как-то число и тип процессоров, количество оперативной памяти, тип организации дисковой системы(если есть RAID массивы)

6. Если Ваш вопроc связан с созданием какого-то запроса, то предоставление Вами следующих материалов может существенно ускорить нахождение решения:
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
(эти данные лучше офрмлять с использованием специальных тэгов, которые повысят их читабельность. Вот пример хорошего стиля )
Подумайте также над тем, чтобы описать решаемую Вами задачу целиком. Возможно, что тот способ решения, который Вы стремитесь воплотить в жизнь, не является наилучшим, а лишь кажется Вам таковым. Например, вместо вопроса "Как добавить несколько полей в системную таблицу sysusers?" лучше спросить "Как мне хранить дополнительную информацию, привязанную к пользователю бд? Можно ли для этого использовать системную таблицу sysusers?"
(Пример НЕправильно оформоленного вопроса)

CREATE TRIGGER
2 июн 13, 18:59    [14380923]     Ответить | Цитировать Сообщить модератору
 Re: Тригер и 3 таблицы  [new]
ROLpogo
Member

Откуда: Реутов
Сообщений: 216
Мастер Чифир, как-то так.

if OBJECT_ID('t_pokupka_ai', 'TR') is not null
  drop trigger t_pokupka_ai
go

create trigger t_pokupka_ai on pokupka after insert as
begin
  set nocount on

  update P set
    P.stoimost_pokupki = I.kolichestvo * T.roznichnaya_stoimost
  from inserted I
    inner join pokupka P       on P.kod_pokupki        = I.kod_pokupki
    inner join klient_tovar KT on KT.kod_klienta_tovar = P.kod_klienta_tovar
    inner join tovar T         on T.kod_tovara         = KT.kod_tovara

  set nocount off
end
go
2 июн 13, 19:11    [14380945]     Ответить | Цитировать Сообщить модератору
 Re: Тригер и 3 таблицы  [new]
Мастер Чифир
Guest
ROLpogo, спасибо, все работает) только теперь нужно разобраться в коде, чтобы объяснить преподавателю при защите курсовой)
2 июн 13, 19:39    [14381012]     Ответить | Цитировать Сообщить модератору
 Re: Тригер и 3 таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Мастер Чифир
ROLpogo, спасибо, все работает) только теперь нужно разобраться в коде, чтобы объяснить преподавателю при защите курсовой)
Может, ROLpogo загримируется и объяснит?
2 июн 13, 19:44    [14381030]     Ответить | Цитировать Сообщить модератору
 Re: Тригер и 3 таблицы  [new]
Мастер Чифир
Guest
iap, а может не будем умничать. И при чем тут твои комментарии, я вроде не говорил, чтобы мне объясняли, я сам разберусь. Ему большое спасибо, что дал работающий код
2 июн 13, 19:49    [14381040]     Ответить | Цитировать Сообщить модератору
 Re: Тригер и 3 таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Мастер Чифир
iap, а может не будем умничать. И при чем тут твои комментарии, я вроде не говорил, чтобы мне объясняли, я сам разберусь. Ему большое спасибо, что дал работающий код

надеюсь, что вы не забудете указать в своей курсовой, кто явлется автором кода
2 июн 13, 21:30    [14381245]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить