To pobiera wszystkie lata od 2004 do chwili obecnej, używając rekurencyjnego CTE:
with yearlist as
(
select 2004 as year
union all
select yl.year + 1 as year
from yearlist yl
where yl.year + 1 <= YEAR(GetDate())
)
select year from yearlist order by year desc;