CREATE PROCEDURE AddStock
  @编号 CHAR(10),
  @入库数量 AS INT
 AS
   update 库存表 set 库存量=库存量+@入库数量 where 编号=@编号

解决方案 »

  1.   

    CREATE PROCEDURE AddStock
      @编号 CHAR(2),
      @入库数量 AS INT
      @不合格数 AS INT
     AS
       exec 'update 库存表 set 库存量=库存量+'@入库数量+',不合格数=不合格数+'+@不合格数+' where 编号='''+@编号+''''
      

  2.   

    create proc 过程名
    @a varchar(10),
    @b int,
    @c int
    as
    insert 入库表 (编号,入库数量,不合格数) values(@a,@b,@c)
    update 库存表 set 库存数量=库存数量+@b,不合格数=不合格数+@c where 编号=@a
    go
      

  3.   

    触发器CREATE TRIGGER 名1 ON 入库单表
    FOR INSERT
    AS
    update 库存表 set 库存数量=库存表.库存数量+inserted.入库数量,不合格数=库存表.不合格数+inserted.不合格数 from inserted where 库存表.编号=inserted.编号
    go
      

  4.   

    存储过程:
    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
      

  5.   

    触发器
    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
      

  6.   

    触发器我倒是会写,问题是我在delphi里面常用到触发器!很少用到存储过程!我做到现在都搞不懂了,到底存储过程主要应用到那一方面啊!感觉在delphi里面做数据库实在没有触发器来得简单!大家能帮我说说,解开疑惑吗?
      

  7.   

    用触发器吧,自动更新
    触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft® SQL Server™ 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。