CB the UPDATE function is really misleading; it doesn't tell you if something changed or not(which is what you intuitively assume based on the name)
it returns true or false if the column was referenced in the insert update statement, NOT if the data changed; to check if things changed, you need to compare the columns by joining the INSERTED and DELETED tables instead;
something else taht might not be obvious, is that your trigger can do multiple things in it;
here's an example i fleshed out, but i do not know if some of the columns exist, like "ChangeDate_City" that my code assumes:
CREATE TRIGGER UpdateDates
ON Foo_bar_Trig
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE Foo_bar_Trig
SET ChangeDate_Address1 = getdate()
FROM INSERTED i
INNER JOIN DELETED d
ON i.Address_id = d.Address_id
INNER JOIN Foo_bar_Trig a
ON i.Address_id = a.Address_id
--did the address change?
WHERE i.Address1 <> d.Address1
UPDATE Foo_bar_Trig
SET ChangeDate_Address2 = getdate()
FROM INSERTED i
INNER JOIN DELETED d
ON i.Address_id = d.Address_id
INNER JOIN Foo_bar_Trig a
ON i.Address_id = a.Address_id
--did the address2 change?
WHERE i.Address2 <> d.Address2
UPDATE Foo_bar_Trig
SET ChangeDate_Address3 = getdate()
FROM INSERTED i
INNER JOIN DELETED d
ON i.Address_id = d.Address_id
INNER JOIN Foo_bar_Trig a
ON i.Address_id = a.Address_id
--did the address3 change?
WHERE i.Address3 <> d.Address3
UPDATE Foo_bar_Trig
SET ChangeDate_City = getdate()
FROM INSERTED i
INNER JOIN DELETED d
ON i.Address_id = d.Address_id
INNER JOIN Foo_bar_Trig a
ON i.Address_id = a.Address_id
--did the address3 change?
WHERE i.City <> d.City
--City,State_Code,Province,Country,Zip,chapter_designation,EmailAddress,Phone,Mobile
END
Lowell