当前位置: 代码迷 >> Sql Server >> 这个update触发器不起作用,该如何处理
  详细解决方案

这个update触发器不起作用,该如何处理

热度:42   发布时间:2016-04-25 00:05:08.0
这个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
  相关解决方案