Note that "if update(Adult_Enrolled)" will tell you that [Adult_Enrolled] was part of the UPDATE statement, but not that the specific row actually changed value.You also need to make use of the Deleted and Inserted pseudo tables which contain the Before/After copies of EACH/EVERY row in the update. You are updating the whole table (which may be what you want, but is not specific to the rows that were just updated)update U set Child_Enrolled = CASE I.Adult_Session_Enrolled WHEN '1000' THEN '100' WHEN '2000' THEN '200' WHEN '3000' THEN '300' ELSE Child_Enrolled -- If something goes wrong! leave the original value there ENDFROM [dbo].[Registrations] AS U JOIN Inserted AS I ON I.MyID = U.MyID JOIN Deleted AS D ON D.MyID = U.MyIDWHERE COALESCE(D.Adult_Session_Enrolled, '') <> COALESCE(I.Adult_Session_Enrolled, '') -- Column has changed AND I.Adult_Session_Enrolled IN ('1000', '2000', '3000')