Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 12
1

Создать триггер на добавление записи в поле при условии

27.04.2015, 13:08. Показов 5718. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется две таблицы:

TheBlockDocument: ID, CreateTime( время начала работы), Comment

TimeOfEquipment: ID, EndTime( время окончание работы), Work_hours(должно считаться в триггере), Comment, ID_Block dokument

В общем мне нужен триггер, который будет заполнять это поле при добавлении значения в поле время окончание работы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2015, 13:08
Ответы с готовыми решениями:

Создать триггер на добавление записи в таблицу
Создать триггер на добавление записи в таблицу. Если дата окончания действия компонента рекламной...

Триггер изменяющий поле в таблице при изменении записи
Здравствуйте. Допустим у нас есть таблица table1, поля a1,a2,a3, id*, real_time. Допустим...

T-SQL. Как создать триггер INSERT, в котором при условии существования столбца TMP в него будет вставляться текущая дата?
Дело в том, что если я пишу такой запрос: IF exists(select * from information_schema.columns where...

Доп. поле при добавление записи
В запросе присутствует доп.поле, образованное соединением двух других (вроде Field1&"."&Field2 AS...

6
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
27.04.2015, 13:17 2
Olk1811, а нужно ли вам вообще хранить это время, если его в любой момент можно вычислить?
0
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 12
27.04.2015, 13:22  [ТС] 3
Kruds, Да, мне нужен этот триггер как раз с вычислением этого поля(Work_hours), т.к время создания и время окончания не в одной таблице)) Если можете помочь буду очень благодарна)
0
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
27.04.2015, 14:28 4
Я к тому, что при каких-либо выборках период времени элементарно вычисляется, и если отказ от хранения еще одного поля выглядит как экономия на спичках, то использование триггера, на мой взгляд, не совсем оправдано. Это раз.

Во-вторых, почему не хранить информацию о начале и завершении работ в одной таблице? Но это уже на ваше усмотрение как проектировщика.

T-SQL
1
2
3
4
5
6
7
create trigger TimeOfEquipment_InsertTrigger on TimeOfEquipment
instead of insert
as
insert into TimeOfEquipment
select i.ID, i.EndTime, datediff(hh, t.CreateTime, i.EndTime), i.Comment, i.ID_Block
from inserted i
join TheBlockDocument t on t.id = i.ID_Block
0
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 12
27.04.2015, 14:33  [ТС] 5
Kruds, Спасибо буду проверять) А почему не могу хранить данные о начале и конце т.к это две разные ведомости которые будет заполняться) в общем для предприятия это лучше
0
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 12
30.04.2015, 13:53  [ТС] 6
Kruds, К сожалению этот триггер не подходит, мне нужно чтобы он заполнял поле Work hours тогда, когда поле EndTime будет заполнено. То есть нужна проверка сначала заполнено ли поле EndTime. А затем обновились данные с уже вычисленным полем Work_hours.
0
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
30.04.2015, 19:14 7
У вас поле EndTime заполняется всегда уже на созданных записях?
В таком случае вам нужен триггер на update. Пример для Insert выше, подробнее тут.

Да и неизвестно каким образом у вас осуществляется апдейт записей, не исключено что нужную вам логику можно сунуть туда.
0
30.04.2015, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2015, 19:14
Помогаю со студенческими работами здесь

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

Создать триггер на таблицу sdelka, который, при добавлении новой записи, добавит эту запись в другую
пытаюсь научиться создавать триггеры в бд, и т.к я полный чайник, мало чего получается. задача...

Нужно, чтобы в поле V формула считала при условии что в поле M стоит 0
привет нужно, чтобы в поле V формула считала при условии что в поле M стоит 0 в противном случае...

Триггер на добавление скидки к повторяющейся записи
Написал триггре USE GO /****** Object: Trigger . Script Date: 10/04/2014 13:32:36 ******/...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru