SET tbl_requests.date_time=CONVERT(datetime, 'Jun 30 '+CONVERT(char, datepart(year, GetDate())))
WHERE
EXISTS(
SELECT * FROM INSERTED WHERE (CONVERT(int, datepart(month, INSERTED.date_time))>6) AND (datepart(year, INSERTED.date_time)=datepart(year, GetDate()))AND (INSERTED.request_id=tbl_requests.request_id))
3) Создать триггер запрещающий изменять количество поставок, если новая стоимость не превышает 5000.
CREATE TRIGGER trigger3 ON [dbo].[tbl_delivery]
FOR UPDATE
AS
IF EXISTS(
SELECT * FROM tbl_item INNER JOIN INSERTED ON tbl_item.model_id=INSERTED.model_id
WHERE quantity*price<=5000)
BEGIN
ROLLBACK TRANSACTION;
END;
4) Создать триггер, который при изменении Цены контролирует, чтобы разница между новой и старой суммой поставок не превышал 300, в противном случае действие отменяется.
CREATE TRIGGER price_limit ON [dbo].[tbl_item]
FOR UPDATE
AS
IF EXISTS(
SELECT SUM(tbl_delivery.quantity *ABS(INSERTED.price-DELETED.price))
FROM tbl_delivery INNER JOIN
INSERTED ON tbl_delivery.model_id = INSERTED.model_id INNER JOIN
tbl_requests ON tbl_delivery.request_id = tbl_requests.request_id INNER JOIN
DELETED ON DELETED.model_id = INSERTED.model_id
GROUP BY INSERTED.name, tbl_requests.requester
HAVING SUM(tbl_delivery.quantity *ABS(INSERTED.price-DELETED.price))>300
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.