Know what would be awesome? If, instead of the usual cursor-and-local-variables ceremony, T-SQL would let you just do something like this:
FOREACH logrow IN (SELECT logdate, logtime, event_type, user_name, result FROM LogData) FAST_FORWARD BEGIN INSERT INTO failure_log SELECT logrow.logdate, logrow.logtime, logrow.user_name WHERE logrow.result != 'SUCCESS' EXEC do_something_with_log_data @date = logrow.date, @time = logrow.time, @result = logrow.result END
But alas, it does not. I'll have to continue to put up with a bunch of DECLAREs and 'FETCH NEXT INTO...'