39 lines
846 B
Transact-SQL
39 lines
846 B
Transact-SQL
-- 05_procedures.sql
|
|
-- Создание хранимых процедур
|
|
|
|
USE [AdoNetShop];
|
|
GO
|
|
|
|
-- Процедура для получения товаров по категории
|
|
CREATE OR ALTER PROCEDURE GetProductsByCategory
|
|
@CategoryId INT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT Id, Name, Description, Price, StockQuantity, CategoryId
|
|
FROM Products
|
|
WHERE CategoryId = @CategoryId;
|
|
END
|
|
GO
|
|
|
|
-- Процедура для безопасного обновления цены
|
|
CREATE OR ALTER PROCEDURE UpdateProductPrice
|
|
@ProductId INT,
|
|
@NewPrice DECIMAL(18,2)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
IF @NewPrice <= 0
|
|
BEGIN
|
|
RAISERROR ('Цена должна быть больше нуля.', 16, 1);
|
|
RETURN;
|
|
END
|
|
|
|
UPDATE Products
|
|
SET Price = @NewPrice
|
|
WHERE Id = @ProductId;
|
|
END
|
|
GO
|