UPDATE() only means that the column was included in the UPDATE statement - NOT that any data in that column has, necessarily, changed.
You may need to also allow for CreditLimit / Status being NULLwhere COALESCE(i.CreditLimit, -1) <> COALESCE(d.CreditLimit, -1) OR COALESCE(i.Status, -1 <> COALESCE(d.Status, -1)
Choose a value where I have shown "-1" which is of the correct datatype, but a value that will never exist in the actual data