触发气问题!在update 指定字段时修改时间!(sqlserver2000)
sqlserver2000下
在update指定字段时 更改curr_time=getdate()
A 表中curr_time 默认是为空的。 <null>
我想让他在update void_date 时给curr_time 设定为getdate()
触发器如下:
CREATE TRIGGER trigger_A ON [dbo].[A]
FOR UPDATE
AS
declare @id char(10)
if UPDATE(VOID_DATE)
begin
select @id = A_NO from inserted
update A set curr_time=getdate()
from A
where A_NO = @id
end
问题:
当我update一条数据的时候curr_time 是等于 getdate()
但是当我 update A set void_date = '1999-9-9 ' 更改所有
后只做用到一条记录上。
分析:
应该是在 select @id = A_NO from inserted 这里
@id的问题。
有谁能解决, 或有其他方法。
[解决办法]
CREATE TRIGGER trigger_A ON [dbo].[A]
FOR UPDATE
AS
declare @id char(10)
if UPDATE(VOID_DATE)
begin
-- select @id = A_NO from inserted
update A set curr_time=getdate()
from A,inserted i
where A.A_NO = i.A_NO
end