日期:2014-05-17  浏览次数:20515 次

这个update触发器不起作用
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


Alter    TRIGGER [trg_update_StockInvoice] ON [dbo].[t_StockInvoice] 
FOR UPDATE 
AS

DECLARE @F_BillID     int

If UPDATE(F_Check)
BEGIN

     select @F_BillID=F_BillID from inserted
     select @F_BillID

END


F_Check的确改了,由0变1,但是@F_BillID没有取到, select @F_BillID为null值,为啥
------解决方案--------------------
以上代码经测试没有问题。 sql2008
------解决方案--------------------
有啥问题??
------解决方案--------------------
定义变量做什么?
这样不行么:
Alter    TRIGGER [trg_update_StockInvoice] ON [dbo].[t_StockInvoice] 
FOR UPDATE 
AS
=If UPDATE(F_Check)
BEGIN

     select F_BillID from inserted

END
用变量的话,如果一次更新多条记录,而最后的那条记录 F_BillID 为NULL 的话,则出来NULL.

------解决方案--------------------
代码没问题啊,你看看是不是你的表里面那个字段值是不是null