想在poorders的 INSERT 触发程序里写上为sort自动增加数字,以满足以上要求
不知道怎么写,当新增一个pono时,它的sort 就为1,否则就为同pono的sort再加上1
我试写
CREATE TRIGGER addb ON [dbo].[poorders]
FOR INSERT
AS
update poorders set ORDER=a.ORDER+1 from inserted b,
(select max(ORDER) from deleted group by orderno where orderno=b.orderno) a
where b.orderno=a.orderno
报错!
不知道怎么写,当新增一个pono时,它的sort 就为1,否则就为同pono的sort再加上1
我试写
CREATE TRIGGER addb ON [dbo].[poorders]
FOR INSERT
AS
update poorders set ORDER=a.ORDER+1 from inserted b,
(select max(ORDER) from deleted group by orderno where orderno=b.orderno) a
where b.orderno=a.orderno
报错!
FOR INSERT
as
declare @a varchar(10),@i int,@B varchar (20)
select @b=name from inserted
update poorders set @i=case @a when pono then @i+1 else 1 end
,cust=@i,@a=pono,@b=name
CREATE TRIGGER addb ON [dbo].[poorders]
FOR INSERT
AS
declare @m int
set @m=0
update a set @m=sort=@m+1
from poorders a,(select max(pono) as pono from inserted) b
where b.pono=a.pono
订单主档
poorder:主键为pono
pono cust day
订单明细档
pono sort goodsid quantity
poorders:主键为pono+sort,sort为int型
当明细增加一条记录(pono)时,它的sort为1,如果之前这(pono)有存在,那么就是以前这订单最大的sort 再加上1
如下
CREATE TRIGGER addb ON [dbo].[poorders]
FOR INSERT
AS
update poorders set sort=(select isnull(max(sort),0)+1 from poorders where orderno=a.orderno)
from poorders ,inserted a
where (poorders.orderno=a.orderno and poorders.goodsid=a.goodsid)就搞不懂,为什么不用deleted
你的表结构和你的触发器字段对不上
呵呵..pono应该是orderno
但这样也有问题了!当我调试时如果故意不输入sort,那就没问题,但是如果我又手动输入sort,那么就有问题了!