Сделана 8 лаба

This commit is contained in:
2022-10-26 04:00:02 +03:00
parent 38c08028f1
commit c96fca8bc7
4 changed files with 106 additions and 0 deletions

11
Lab8/Task1.sql Normal file
View File

@@ -0,0 +1,11 @@
USE AdventureWorks;
GO
CREATE PROCEDURE Sales.GetDiscounts
AS
BEGIN
SELECT Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty
FROM Sales.SpecialOffer;
END
EXEC Sales.GetDiscounts;

13
Lab8/Task2.sql Normal file
View File

@@ -0,0 +1,13 @@
USE AdventureWorks;
GO
CREATE PROCEDURE Sales.GetDiscountsForCategory
@Category nvarchar(50)
AS
BEGIN
SELECT Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty
FROM Sales.SpecialOffer
WHERE Category IN (@Category);
END
EXEC Sales.GetDiscountsForCategory 'Reseller'

19
Lab8/Task3.sql Normal file
View File

@@ -0,0 +1,19 @@
USE AdventureWorks;
GO
CREATE PROCEDURE Sales.GetDiscountsForCategoryAndDate
@Category nvarchar(50) = NULL,
@DateToCheck datetime = NULL
AS
BEGIN
IF @DateToCheck IS NULL SET @DateToCheck = GETDATE();
SELECT Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty
FROM Sales.SpecialOffer
WHERE Category IN (@Category) AND (@DateToCheck BETWEEN StartDate AND EndDate);
END
EXEC Sales.GetDiscountsForCategoryAndDate 'Reseller'
DECLARE @DateToCheck datetime
SET @DateToCheck = DATEADD(MONTH, 1, GETDATE())
EXEC Sales.GetDiscountsForCategoryAndDate 'Reseller', @DateToCheck

63
Lab8/Task4.sql Normal file
View File

@@ -0,0 +1,63 @@
USE AdventureWorks;
GO
CREATE PROCEDURE Sales.AddDiscount
@Description nvarchar(255),
@DiscountPct smallmoney,
@Type nvarchar(50),
@Category nvarchar(50),
@StartDate Datetime,
@EndDate Datetime,
@MinQty int,
@MaxQty int,
@NewProductID int
AS
BEGIN
BEGIN TRY
INSERT INTO Sales.SpecialOffer
(SpecialOfferID, Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty)
VALUES (@NewProductID, @Description, @DiscountPct, @Type, @Category, @StartDate, @EndDate, @MinQty, @MaxQty)
END TRY
BEGIN CATCH
INSERT INTO dbo.ErrorLog
VALUES (GETDATE(), USER_NAME(), ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_PROCEDURE(), ERROR_LINE(), ERROR_MESSAGE())
END CATCH
END;
GO
DECLARE @StartDate datetime, @EndDate datetime
SET @StartDate = GetDate()
SET @EndDate = DateAdd(month, 1, @StartDate)
DECLARE @NewId int
SET @NewId = 25;
EXEC Sales.AddDiscount
'Half price off everything',
0.5,
'Seasonal Discount',
'Customer',
@StartDate,
@EndDate,
0,
20,
@NewId OUTPUT;
SELECT @NewID;
DECLARE @StartDate datetime, @EndDate datetime
SET @StartDate = GetDate()
SET @EndDate = DateAdd(month, 1, @StartDate)
DECLARE @NewId int, @ReturnValue int
EXEC @ReturnValue = Sales.AddDiscount
'Half price off everything',
-0.5, -- UNACCEPTABLE VALUE
'Seasonal Discount',
'Customer',
@StartDate,
@EndDate,
0,
20,
@NewID OUTPUT
IF (@ReturnValue = 0)
SELECT @NewID
ELSE
SELECT TOP 1 * FROM dbo.ErrorLog ORDER BY ErrorTime DESC