sqlh19.3

-- Opdracht 1

/* Maak een stored procedure om een nieuwe vendor toe te voegen (alleen id en name). Voeg vervolgens een nieuwe vendor toe. */

CREATE PROCEDURE NewVendor @vend_id char(10), @vend_name char(50) AS
INSERT INTO Vendors (vend_id, vend_name)
VALUES (@vend_id, @vend_name);

Execute NewVendor 'NWE', 'Nieuwe leverancier';

-- Opdracht 2

/* Maak een stored procedure om een nieuw product toe te voegen. Voeg vervolgens een nieuw product toe. */

CREATE PROCEDURE NewProduct @prod_id char(10), @vend_id char(10), @prod_name char(255), @prod_price decimal(8,2), @prod_desc varchar(1000) AS
INSERT INTO Products
VALUES (@prod_id, @vend_id, @prod_name, @prod_price, @prod_desc);

Execute NewProduct 'PROD01', 'JTS01', 'Product 1', 6.99, 'Omschrijving van product 1'; 

-- Opdracht 3

/* Maak een stored procedure om een nieuwe orderitem toe te voegen met order_num 20010 en prod_id BR01. */

CREATE PROCEDURE NewOrderItem @order_item int, @quantity int AS

DECLARE @prod_id char(10)
DECLARE @item_price decimal(8,2)

SET @prod_id = 'BR01'

SELECT @item_price = prod_price 
FROM Products 
WHERE prod_id=@prod_id

INSERT INTO OrderItems (order_num, order_item, prod_id, quantity, item_price)
VALUES (20010, @order_item, @prod_id, @quantity, @item_price);

Execute NewOrderItem 1,100;

-- Opdracht 4

/* Maak een stored procedure die een nieuwe klant aanmaakt, een nieuwe order en een nieuwe orderitem. Gebruik een bestaand product. */ 

CREATE PROCEDURE FirstOrder @cust_name char(50), @quantity int AS

DECLARE @prod_id char(10)
DECLARE @cust_id char(10)
DECLARE @order_num int
DECLARE @item_price decimal(8,2)

SET @prod_id = 'BR02'

-- Customers
SELECT @cust_id=max(cust_id)
FROM Customers

SELECT @cust_id=@cust_id+1

INSERT INTO Customers (cust_id, cust_name)
VALUES(@cust_id, @cust_name)

-- Orders
SELECT @order_num=max(order_num)
FROM Orders

SELECT @order_num=@order_num+1

INSERT INTO Orders (order_num, order_date, cust_id)
VALUES(@order_num,GETDATE(),@cust_id)

-- OrderItems
SELECT @item_price = prod_price 
FROM Products 
WHERE prod_id=@prod_id

INSERT INTO OrderItems (order_num, order_item, prod_id, quantity, item_price)
VALUES(@order_num,1, @prod_id,@quantity,@item_price);

Execute FirstOrder 'Nieuwe klant', 75;

Download hier het bestand.