a上的
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO--创建触发器删除主单的时候删除详单
ALTER trigger tr_masterstorage_delete
on dbo.masterstorage
for DELETE
as
declare @csn varchar(10) --单据号码
select @csn=d.cstorageno
from deleted D
delete detailstorage where cstorageno=@csnGO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO--创建触发器删除主单的时候删除详单
ALTER trigger tr_masterstorage_delete
on dbo.masterstorage
for DELETE
as
declare @csn varchar(10) --单据号码
select @csn=d.cstorageno
from deleted D
delete detailstorage where cstorageno=@csnGO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
-- =============================================
-- ALTER trigger basic template(After trigger)
-- =============================================
ALTER TRIGGER tr_detailscgdelete
ON detailstorage
FOR delete
AS
BEGIN
declare @goodsno varchar(15)
declare @bargainno varchar(15)
declare @izl decimal(12,4)
declare @isl decimal(10,2)
declare @cizl decimal(12,4)
declare @cisl decimal(10,2)
declare @pc varchar(25)
declare @djbh varchar(10)
if exists(select cpc from deleted)
begin
select @djbh=cstorageno,@pc=cpc,@izl=iweight,@isl=istorageamount,@goodsno=cgoodsno,@bargainno=cbargainno from deleted
if (select right(cstoragemethod,2) from masterstorage where cstorageno=@djbh)='入库'--减少库存
begin
select @cizl=izl,@cisl=isl from currentgoods where cbargainno=@bargainno and cgoodsno=@goodsno
update currentgoods set isl=@cisl-@isl,izl=@cizl-@izl where cbargainno=@bargainno and cgoodsno=@goodsno
end
if (select right(cstoragemethod,2) from masterstorage where cstorageno=@djbh)='出库'--增加库存
begin
select @cizl=izl,@cisl=isl from currentgoods where cbargainno=@bargainno and cgoodsno=@goodsno
update currentgoods set isl=@cisl+@isl,izl=@cizl+@izl where cbargainno=@bargainno and cgoodsno=@goodsno
end
end
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
begin
----加语句 end
select * from deleted然后再在查询分析器中做删除测试,看看删除影响的记录是否正确.
而
select @djbh=cstorageno from deleted
为什么就没有结果呢?这种写法有错误吗?
print @djbh
这是一个赋值过程,即把cstorageno的值给@djbh