create table goods 
(
  id varchar(10),
  [name] varchar(10),
  num int
)
gocreate trigger tri_goods on goods instead of insert
as
begin
declare @id as varchar(10)declare @name as varchar(10)declare @num as intselect @id=id from insertedselect @name=name from insertedselect @num=num from insertedif exists(select * from goods where id=@id and name=@name)update goods set num=num+@num where id=@id
else
insert into goods values(@id,@name,@num)
end
go这是入库时的触发器 
代码是C#编写的窗体 添加代码 string sql = "insert into goods values('" + textBox1.Text + "','" + textBox2.Text + "'," + int.Parse(textBox3.Text) + ")";
哪位大侠能写个出库时的触发器 c# 的删除代码怎么写????
有2个textbox1 textbox2 是要删除的ID 和药删除的数量?????
要该怎么写?

解决方案 »

  1.   

    create trigger tri_goods on goods FOR UPDATE
    as 
    BEGIN 
          UPDATE 库存表 SET NUM=NUM-I.NUM..
    END
      

  2.   

    你不会就一个table吧? 入库出库直接修改数据??
    那哪天要查看明细。咋办?
      

  3.   

    不知道这样行不行
    create  trigger tr_goods_update on goods for update
    as
    declare @id as varchar(10) 
    declare @name as varchar(10) 
    declare @num as intbegin transaction trans_goods
    if exists(select * from goods where id=@id and name=@name)
    BEGIN 
    declare cur cursor for select [id],[name] from goods
    open cur
    fetch next from cur Into @id,@name
    while @@fetch_status=0
    begin
           update goods set num=num-@num where [id]=@id and [name]=@name
    Fetch Next from cur Into @id,@name
    end
    close cur
    deallocate cur
    ENDif @@error<>0
    rollback transaction trans_goods
    else
    commit transaction trans_goods