je le code suivant pour un déclencheur:Comportement de déclencheur dans SQL Server 2000 et SQL Server 2005: tout changement?
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
qui est censé mettre à jour la date du mot de passe: sans conditions si nous traitons avec un insert, mais la date de mot de passe doit être modifié que si une mise à jour a vraiment changé le mot de passe .
Cela fonctionne dans SQL Server 2000, mais pas dans SQL Server 2005. Je suis sûr d'avoir fait quelque chose de stupide, mais, au cas où, quelqu'un est au courant de certains changements entre SQL Server 2000 et 2005 qui pourraient affecter le comportement de ce déclencheur? A savoir, la fonction update()?
Oui, cela ne fonctionne pas correctement maintenant, cela ne donne pas d'erreur! – HLGEM