小编use*_*450的帖子

子查询返回的值超过1.当子查询跟随=或子查询用作表达式时,这是不允许的?

我想在一个表中插入值后更新多个表和值,因此我创建了一个触发器.它适用于一行插入,但是一旦插入更多行,SQL Server就会出现以下错误:

子查询返回的值超过1.当子查询跟随=或子查询用作表达式时,这是不允许的?

这是我的触发器:

CREATE TRIGGER [dbo].[tbl_Sales_ForInsert]
ON [dbo].[SALES] 
FOR INSERT
AS
BEGIN
  DECLARE @ITEMMODEL varchar(100)

  SELECT @ITEMMODEL = ITEM_MODEL FROM inserted

  UPDATE SALES 
  SET PROFIT = TOTAL_PRICE - (SELECT QUANTITY FROM SALES WHERE ITEM_MODEL = @ITEMMODEL) * (SELECT RATE FROM ITEM_DETAILS WHERE ITEM_MODEL = @ITEMMODEL) 
  WHERE ITEM_MODEL = @ITEMMODEL

  UPDATE ITEM_DETAILS 
  SET QUANTITY = QUANTITY - (SELECT QUANTITY FROM SALES WHERE ITEM_MODEL = @ITEMMODEL) 
  WHERE ITEM_MODEL = @ITEMMODEL

  --UPDATE ITEM_DETAILS SET AMOUNT = AMOUNT - (SELECT RATE FROM ITEM_DETAILS …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server triggers

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql-server ×1

t-sql ×1

triggers ×1