CREATE PROCEDURE AddStock @编号 CHAR(2), @入库数量 AS INT @不合格数 AS INT AS exec 'update 库存表 set 库存量=库存量+'@入库数量+',不合格数=不合格数+'+@不合格数+' where 编号='''+@编号+''''
create proc 过程名 @a varchar(10), @b int, @c int as insert 入库表 (编号,入库数量,不合格数) values(@a,@b,@c) update 库存表 set 库存数量=库存数量+@b,不合格数=不合格数+@c where 编号=@a go
触发器CREATE TRIGGER 名1 ON 入库单表 FOR INSERT AS update 库存表 set 库存数量=库存表.库存数量+inserted.入库数量,不合格数=库存表.不合格数+inserted.不合格数 from inserted where 库存表.编号=inserted.编号 go
存储过程: create proc P_Test @Bh varchar(10) as update b set b.库存数量=ISNULL(b.库存数量,0)+a.入库数量, b.不合格数=ISNULL(b.不合格数,0)+a.不合格数 from 入库单表 a inner join 库存表 b on a.编号= b.编号 where a.编号 =@Bh go
触发器 CREATE TRIGGER 名1 ON 入库单表 FOR INSERT AS update b set b.库存数量=ISNULL(b.库存数量,0)+a.入库数量, b.不合格数=ISNULL(b.不合格数,0)+a.不合格数 from inserted a inner join 库存表 b on a.编号= b.编号 go
@编号 CHAR(2),
@入库数量 AS INT
@不合格数 AS INT
AS
exec 'update 库存表 set 库存量=库存量+'@入库数量+',不合格数=不合格数+'+@不合格数+' where 编号='''+@编号+''''
@a varchar(10),
@b int,
@c int
as
insert 入库表 (编号,入库数量,不合格数) values(@a,@b,@c)
update 库存表 set 库存数量=库存数量+@b,不合格数=不合格数+@c where 编号=@a
go
FOR INSERT
AS
update 库存表 set 库存数量=库存表.库存数量+inserted.入库数量,不合格数=库存表.不合格数+inserted.不合格数 from inserted where 库存表.编号=inserted.编号
go
create proc P_Test
@Bh varchar(10)
as
update b set b.库存数量=ISNULL(b.库存数量,0)+a.入库数量,
b.不合格数=ISNULL(b.不合格数,0)+a.不合格数
from 入库单表 a inner join 库存表 b on a.编号= b.编号 where a.编号 =@Bh
go
CREATE TRIGGER 名1 ON 入库单表
FOR INSERT
AS
update b set b.库存数量=ISNULL(b.库存数量,0)+a.入库数量,
b.不合格数=ISNULL(b.不合格数,0)+a.不合格数
from inserted a inner join 库存表 b on a.编号= b.编号
go
触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft® SQL Server™ 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。