示例-触发器.sql

来自「用C语言如何编写多元线性回归」· SQL 代码 · 共 43 行

SQL
43
字号
CREATE TABLE 库存表
     (  产品号 char(6) PRIMARY KEY,
	产品名 char(10),
	库存数量 int
     )
CREATE TABLE 出库表
     (  产品号 char(6) REFERENCES 库存表(产品号),
	出库日期 smalldatetime,
	出库数量 int
     )
GO

INSERT INTO 库存表 VALUES('01','计算机',10)
INSERT INTO 库存表 VALUES('02','电视机',20)
INSERT INTO 库存表 VALUES('03','DVD',5)

GO

CREATE TRIGGER TR_出库表
     ON 出库表 AFTER INSERT
AS
     DECLARE @ID char(6), @num int
     DECLARE @tmp int
     SELECT @ID = 产品号, @num = 出库数量 FROM inserted
     SELECT @tmp = 库存数量 FROM 库存表 
          WHERE 产品号 = @ID
     IF @tmp - @num >= 0 
          BEGIN
              UPDATE 库存表 SET 库存数量 = 库存数量 - @num
	            WHERE 产品号 = @ID
              COMMIT TRAN
          END	
     ELSE BEGIN
          	ROLLBACK TRAN
	  	RAISERROR('库存数量不够!',16,1)
          END
GO

Insert 出库表 VALUES('02','2006-3-10',1)

select * from 库存表
select * from 出库表

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?