Protseduurid

1. Video protseduurid

Oma 2 protseduurid 3 jaoks

Oma 2 protseduurid 4 jaoks

Protseduur mis kuvab Product manufacturer ja price

--Protseduur mis kuvab Product manufacturer ja price
CREATE PROCEDURE ProductSummary
AS
BEGIN
SELECT ProductName AS Product, Manufacturer, Price
FROM Products
END;
--Kutse
EXEC ProductSummary;

Protseduur mis lisab uus produkt

--Protseduur mis lisab uus produkt
CREATE PROCEDURE AddProduct
    @name NVARCHAR(20),
    @manufacturer NVARCHAR(20),
    @count INT,
    @price MONEY
AS
INSERT INTO Products(ProductName, Manufacturer, ProductCount, Price) 
VALUES(@name, @manufacturer, @count, @price);
--Kutse
EXEC AddProduct 'Riided2', 'Nike', 21000, 61.93;

--Kutse2
DECLARE @prodName NVARCHAR(20), @company NVARCHAR(20);
DECLARE @prodCount INT, @price MONEY
SET @prodName = 'Galaxy C7'
SET @company = 'Samsung'
SET @price = 220
SET @prodCount = 5
 
EXEC AddProduct @prodName, @company, @prodCount, @price
 
SELECT * FROM Products

--Kutse 3
DECLARE @prodName NVARCHAR(20), @company NVARCHAR(20);
SET @prodName = 'Honor 9'
SET @company = 'Huawei'
 
EXEC AddProduct @name = @prodName, 
                @manufacturer=@company,
                @count = 3, 
                @price = 18000

Protsedure ilma kasutava parametriga

--Protsedure ilma kasutava parametriga
CREATE PROCEDURE AddProductWithOptionalCount
    @name NVARCHAR(20),
    @manufacturer NVARCHAR(20),
    @price MONEY,
    @count INT = 1
AS
INSERT INTO Products(ProductName, Manufacturer, ProductCount, Price) 
VALUES(@name, @manufacturer, @count, @price)

--Kutse
DECLARE @prodName NVARCHAR(20), @company NVARCHAR(20), @price MONEY
SET @prodName = 'Redmi Note 5A'
SET @company = 'Xiaomi'
SET @price = 22000
 
EXEC AddProductWithOptionalCount @prodName, @company, @price
 
SELECT * FROM Products

Protseduur koos OUTPUT parametriga

--Protseduur koos OUTPUT parametriga
CREATE PROCEDURE GetPriceStats
    @minPrice MONEY OUTPUT,
    @maxPrice MONEY OUTPUT
AS
SELECT @minPrice = MIN(Price),  @maxPrice = MAX(Price)
FROM Products

--Kutse
DECLARE @minPrice MONEY, @maxPrice MONEY
 
EXEC GetPriceStats @minPrice OUTPUT, @maxPrice OUTPUT
 
PRINT 'Minimaalne hind ' + CONVERT(VARCHAR, @minPrice)
PRINT 'Maksimaalne hind ' + CONVERT(VARCHAR, @maxPrice)

Süsteemi protseduurid

proceduur mis ei tööta korrektselt. tulemuses annab üks ja sama nimi
peame lisama where …

create proc spGetnameById
@Id int,
@Name nvarchar(20) output
as begin
	select @Id = Id, @Name = Name from Employees 
end

select * from Employees
declare @FirstName nvarchar(50)
execute spGetnameById 3, @FirstName output
print 'Name of the employee = ' + @FirstName