Для создания триггера, который будет автоматически удалять строку и отменять заказ, можно использовать следующий код:
```sql
-- Триггер для удаления строки из таблицы "Продукты"
CREATE TRIGGER Trigger_Delete_Product
ON Products
AFTER UPDATE
AS
BEGIN
IF UPDATE(Quantity_in_stock)
BEGIN
DELETE P
FROM Products P
INNER JOIN deleted D ON P.ID_Product = D.ID_Product
WHERE P.Quantity_in_stock = 0
END
END
-- Триггер для отмены заказа
CREATE TRIGGER Trigger_Cancel_Order
ON Orders
INSTEAD OF INSERT
AS
BEGIN
DECLARE @OrderID INT
DECLARE @ProductID INT
DECLARE @ProductQuantity INT
DECLARE @QuantityInStock INT
SELECT @OrderID = OrderID, @ProductID = ProductID, @ProductQuantity = ProductQuantity
FROM inserted
SELECT @QuantityInStock = Quantity_in_stock
FROM Products
WHERE ID_Product = @ProductID
IF @ProductQuantity > @QuantityInStock
BEGIN
RAISERROR ('The quantity of the ordered product exceeds the quantity in stock', 16, 1)
ROLLBACK TRANSACTION
END
ELSE
BEGIN
INSERT INTO Orders (OrderID, ProductID, ProductQuantity)
VALUES (@OrderID, @ProductID, @ProductQuantity)
END
END
```
Эти триггеры будут выполняться автоматически при соответствующих событиях в базе данных. При обновлении столбца "Кол-во_товара" в таблице "Продукты", триггер Trigger_Delete_Product удалит строку из таблицы, если значение столбца станет равным нулю. А триггер Trigger_Cancel_Order отменит создание заказа, если количество заказанного товара превышает количество товара на складе.