Το query που έγραψες λέει χονδρικά "Αν υπάρχει οποιαδήποτε εγγραφή στον πίνακα με την τιμή 2007, κάνε Rollback". Μάλιστα, ο τρόπος αυτός να γράφεις queries νομίζω ότι σημαίνει "διάλεξε μία τυχαία τιμή από τον πίνακα, και αν είναι 2007 κάνε rollback".
Ο Μάνος σου έδωσε ένα καλό παράδειγμα στο προηγούμενο post για το πως να βρεις τις τιμές που άλλαξαν στον πίνακα. Σε ένα UPDATE trigger, οι νέες τιμές υπάρχουν στον προσωρινό πίνακα INSERTED ενώ οι προηγούμενες τιμές στον πίνακα DELETED. Οπότε, για να ελέγξεις αν άλλαξε μία εγγραφή η οποία είχε παλιά τιμή 2007, θα πρέπει να εκτελέσεις IF EXISTS(SELECT * FROM DELETED WHERE ReportingYear=2007) ...
Τέλος, ρίξε μία ματιά στο Books Online. Περιγράφει πολύ καλά τον τρόπο με τον οποίο δουλεύουν τα triggers και τους πίνακες INSERTED, DELETED κλπ.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos