set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER TRIGGER [tri_PODetUpdate] ON [dbo].[STN_PODet]
FOR UPDATE
AS
begin
declare @pono varchar(30)--更新的请购单编号
declare @SourceNo varchar(20)--请购单编号
declare @SourceSerialNo int--请购单序号
declare @count int--更新后 请购单的已转购数量 declare @okCount int
declare @total int SELECT @pono = PONO,@SourceNo = SourceNo,@SourceSerialNo = SourceSerialNo from deleted
if @SourceSerialNo > 0 -- 说明更新的数据是从请购单转过来的
begin
select @count = SUM(qty) FROM STN_PODet 
WHERE SourceNo = @SourceNo AND SourceSerialNo = @SourceSerialNo update STN_SubscribeDet set DeliveryQty = @count
WHERE SubscribeNo = @SourceNo AND serialNo = @SourceSerialNo
-------------------当请购单的字表所有 请购数量 = 已转购数量 ,那么该申请单 状态改为结案----------------------

--获取 请购数量 和 已转购数量相等的数据条数
select @okCount = COUNT(*) FROM STN_SubscribeDet 
WHERE SubscribeNo = @SourceNo 
AND Qty = DeliveryQty --获取所有数据条数
select @total = COUNT(*) FROM STN_SubscribeDet 
WHERE SubscribeNo = @SourceNo if @total = @okCount
BEGIN
UPDATE STN_SubscribeHD SET Status = 9 WHERE SubscribeNo = @SourceNo
END
end
end最后一句语句貌似总是不执行··········
经过测试  当@total 等于 @okCount 的时候 
UPDATE STN_SubscribeHD SET Status = 9 WHERE SubscribeNo = @SourceNo 
这句还是不执行,为什么呢?