Создание триггеров и хранимых процедур с использованием средства СУБД SQL Server и языковых конструкций Transact-SQL, страница 3

      )

BEGIN

      ROLLBACK TRANSACTION;

END;

1)  Создать хранимую процедуру для добавления строки в таблицу ПОСТАВКА, с занесением кода модели и номера заказа в соответствии с параметрами, определяющими название модели и заказчика, а также количества поставляемых изделий.

CREATE PROCEDURE add_delivery @a char(50), @b char(20), @c int AS

DECLARE

@aa int,

@bb int

SELECT @aa=model_id FROM tbl_item WHERE name=@a

SELECT @bb=request_id FROM tbl_requests WHERE requester=@b

INSERT INTO tbl_delivery VALUES (@aa, @bb, @c)

GO

2)  Создать хранимую процедуру, увеличивающую цену модели на заданный процент и возвращающую значения новых цен. Название модели и процент задавать при вызове процедуры.

CREATE PROCEDURE change_price @a char(50), @b int, @c money OUTPUT AS

UPDATE tbl_item

SET @c = price =  price+price*@b/100

WHERE name=@a

GO

3)  Создать хранимую процедуру, которая формирует новой заказ (заносит соответствующие данные) и возвращает номера изделий и наименования изделий, которые были поставлены этому заказчику.

CREATE PROCEDURE add_delivery_adv @a char(50), @b char(20), @c int, @r int OUTPUT AS

DECLARE

@aa int,

@bb int

SELECT @aa=model_id FROM tbl_item WHERE name=@a

SELECT @bb=request_id FROM tbl_requests WHERE requester=@b

SELECT @r=SUM(quantity) FROM tbl_delivery WHERE request_id=@bb

INSERT INTO tbl_delivery VALUES (@aa, @bb, @c)

GO