sqlserver创建触发器,向“产品”表填入新数据时,当“产品”表中的“库存量”小于20时,“中止”列显示为“请补货”,否则显示“库存正常”
时间: 2023-11-06 09:08:39 浏览: 16
可以使用以下 SQL 语句创建触发器,实现当“产品”表中的“库存量”小于20时,“中止”列显示为“请补货”,否则显示“库存正常”:
```
CREATE TRIGGER trg_Products_UpdateStockStatus
ON Products
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @ProductID INT, @StockLevel INT, @StockStatus NVARCHAR(50)
SELECT @ProductID = i.ProductID, @StockLevel = i.StockLevel
FROM inserted i
IF @StockLevel < 20
SET @StockStatus = '请补货'
ELSE
SET @StockStatus = '库存正常'
UPDATE Products
SET StockStatus = @StockStatus
WHERE ProductID = @ProductID
END
```
该触发器会在“产品”表中有新数据插入或更新时触发。通过使用 inserted 表可以获得插入或更新的数据。在触发器中判断“库存量”是否小于 20,如果是,则将“中止”列更新为“请补货”,否则更新为“库存正常”。最后,使用 UPDATE 语句将“中止”列的值更新到“产品”表中。
相关问题
sqlserver创建触发器,当“产品”表中的“库存量”小于20时,“中止”列显示为“请补货”,否则显示“库存正常”
可以使用以下SQL语句创建一个触发器来实现你的需求:
```
CREATE TRIGGER trg_Product_Inventory
ON Product
AFTER UPDATE
AS
BEGIN
IF UPDATE(Inventory)
BEGIN
UPDATE Product
SET Status = CASE WHEN Inventory < 20 THEN '请补货' ELSE '库存正常' END
FROM inserted i
WHERE Product.ProductID = i.ProductID
END
END
```
这个触发器会在“产品”表中的“库存量”列更新后触发。如果更新的行的“库存量”小于20,则“中止”列会被设置为“请补货”,否则设置为“库存正常”。注意,这个触发器只会在“产品”表中的“库存量”列更新时触发,其他列的更新不会触发这个触发器。
sql创建触发器,当“产品”表中的“数量”小于20时,“中止”列显示为“请补货”,否则显示“库存正常”
可以使用以下 SQL 语句来创建触发器:
```sql
CREATE TRIGGER trg_check_inventory
AFTER UPDATE ON 产品
FOR EACH ROW
BEGIN
IF NEW.数量 < 20 THEN
UPDATE 产品 SET 中止 = '请补货' WHERE id = NEW.id;
ELSE
UPDATE 产品 SET 中止 = '库存正常' WHERE id = NEW.id;
END IF;
END;
```
这个触发器会在每次更新“产品”表中的一行时自动触发。如果更新后的“数量”小于 20,则中止列会被更新为“请补货”,否则会被更新为“库存正常”。请注意,这个触发器假设“产品”表中有一个名为“id”的主键列。如果你的表结构不同,可能需要对触发器进行适当的修改。