回 帖 发 新 帖 刷新版面

主题:初学触发器

有个问题请教大家:

CREATE TABLE 卷烟库存表
(
    卷烟品牌        VARCHAR(40) PRIMARY KEY NOT NULL,
    库存数量        INT NULL,
    库存单价        MONEY NULL,
    库存金额        MONEY NULL
)
GO
=========================
CREATE TRIGGER T_INSERT_卷烟库存表
ON 卷烟库存表
FOR INSERT
AS
--提交事务处理
BEGIN TRANSACTION
    --强制执行下列语句,保证业务规则
    UPDATE 卷烟库存表
    SET 库存金额 = 库存数量 * 库存单价
    WHERE 卷烟品牌 IN (SELECT 卷烟品牌 from INSERTED)
COMMIT TRANSACTION
GO

想大家帮我详细点解析一下这一句:
   WHERE 卷烟品牌 IN (SELECT 卷烟品牌 from INSERTED)
它有什么用?没有它有什么不同吗??

回复列表 (共1个回复)

沙发

有这一句仅更新刚插入记录的库存金额
没有这句就会更新表中所有记录的库存金额

我来回复

您尚未登录,请登录后再回复。点此登录或注册