-- 06_test.sql -- Проверочные запросы. Выполняйте вручную после 01-05 скриптов. USE [AdoNetShop]; GO -- ============ Таблицы ============ SELECT * FROM Categories; SELECT * FROM Products; SELECT * FROM Customers; SELECT * FROM Orders; SELECT * FROM OrderItems; -- ============ Примеры SELECT-запросов из приложения ============ -- 1. Все товары (демонстрация SqlDataReader) SELECT Id, Name, Description, Price, StockQuantity, CategoryId FROM Products; GO -- 2. Один товар по Id (демонстрация параметризованного SqlCommand) DECLARE @Id INT = 1; SELECT Id, Name, Description, Price, StockQuantity, CategoryId FROM Products WHERE Id = @Id; GO -- 3. Товары с названием категории (JOIN) SELECT p.Id, p.Name, p.Price, p.StockQuantity, c.Name AS CategoryName FROM Products p JOIN Categories c ON p.CategoryId = c.Id ORDER BY p.Name; GO -- ============ Проверка хранимых процедур ============ -- Все товары EXEC dbo.GetProducts; GO -- Товары только 1-й категории EXEC dbo.GetProducts @CategoryId = 1; GO -- Один товар EXEC dbo.GetProductById @ProductId = 1; GO -- Успешное изменение цены EXEC dbo.UpdateProductPrice @ProductId = 1, @NewPrice = 1450.00; SELECT Id, Name, Price FROM Products WHERE Id = 1; GO -- Ожидаемая ошибка: цена <= 0 (процедура сама вызовет RAISERROR) EXEC dbo.UpdateProductPrice @ProductId = 1, @NewPrice = -10.00; GO -- ============ Проверка ограничений (CHECK) ============ -- Ожидаемая ошибка: Price > 0 INSERT INTO Products (Name, Price, StockQuantity, CategoryId) VALUES ('Тестовый товар', -5, 1, 1); GO -- Ожидаемая ошибка: StockQuantity >= 0 UPDATE Products SET StockQuantity = -1 WHERE Id = 1; GO -- ============ Проверка целостности связей (FOREIGN KEY) ============ -- Ожидаемая ошибка: категории 999 не существует INSERT INTO Products (Name, Price, StockQuantity, CategoryId) VALUES ('Товар без категории', 100, 1, 999); GO