我有以下代码用于触发器:
create trigger trPassDat
ON men
FOR INSERT, UPDATE
AS
declare @man int;
select @man = I.man from men U join inserted I on U.man = I.man
if Not exists (select 'True' from deleted where man = @man)
BEGIN
update men set passdate = getdate() where man = (select man from inserted)
return
END
-- UPDATE
if update(pwd)
BEGIN
update men set passdate = getdate() where man = @man
END
GO
这段代码的作用是在处理插入操作时无条件更新密码日期,但仅当更新确实更改了密码时才应更改密码日期。
这在SQL Server 2000中有效,但在SQL Server 2005中无效。我相信我可能犯了一些愚蠢的错误,但如果有人知道SQL Server 2000和2005之间的某些更改可能会影响此触发器的行为,还请告知,特别是update()函数是否有变化?