📄 示例-触发器.sql
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -