Читайте также:
|
|
--6.1. Триггер на поддержание актуального количества товаров при добавлении поставок
CREATE TRIGGER tr_supply_fi
ON supply
FOR INSERT
AS
UPDATE detail
SET detail_quantity = d.detail_quantity + i.supply_quantity
FROM detail d JOIN INSERTED i ON d.detail_id = i.detail_id
--6.2. Триггер на поддержание актуального количества товаров при удалении поставок
CREATE TRIGGER tr_supply_fd
ON supply
AFTER DELETE
AS
UPDATE detail
SET detail_quantity = detail.detail_quantity - DELETED.supply_quantity
FROM detail JOIN DELETED ON detail.detail_id = DELETED.detail_id
--6.3. Триггер на поддержание актуального количества товаров при отпуске деталей в цеха
CREATE TRIGGER tr_delivery_string_fi
ON delivery_string
FOR INSERT
AS
UPDATE detail
SET detail_quantity = d.detail_quantity - i.delivery_quantity
FROM detail d JOIN INSERTED i ON d.detail_id = i.detail_id
--6.4. Проверка допустимости значения даты поставки при добавлении новой поставки
CREATE TRIGGER tr_supply_ii
ON supply
INSTEAD OF INSERT
AS
IF EXISTS (SELECT *
FROM INSERTED
WHERE supply_date > GETDATE())
BEGIN
RAISERROR ('Недопустимое значение даты поставки!', 16, 1)
ROLLBACK TRAN
END
ELSE
INSERT INTO supply (supplier_id, detail_id, supply_date, supply_quantity)
SELECT supplier_id, detail_id, supply_date, supply_quantity
FROM INSERTED
--6.5. Проверка допустимости значения даты поставки при редактировании существующей поставки
CREATE TRIGGER tr_supply_iu
ON supply
INSTEAD OF UPDATE
AS
IF UPDATE (supply_date)
IF EXISTS (SELECT *
FROM INSERTED
WHERE supply_date > GETDATE())
BEGIN
RAISERROR (' Недопустимое значение даты поставки!', 16, 1)
ROLLBACK TRAN
END
ELSE
UPDATE supply
SET supplier_id = i.supplier_id,
detail_id = i.detail_id,
supply_date = i.supply_date,
supply_quantity = i.supply_quantity
FROM supply s JOIN INSERTED i on s.supply_id = i.supply_id
Вариант 1
Вариант 2
Вариант 3
Модуль 8. Сенсорные системы человека
Дата добавления: 2014-12-19; просмотров: 35 | Поможем написать вашу работу | Нарушение авторских прав |