грубый, но эффективный простой метод
DECLARE @I INT
CREATE TABLE #years (TheYear datetime)
SET @I = 0
WHILE @I <= DATEDIFF(year, '1/1/2005', GETDATE())
BEGIN
INSERT INTO #years VALUES (DATEADD(year, @i, '1/1/2005'))
SET @I = @I + 1
END
SELECT YEAR(TheYear) FROM #years
DROP TABLE #years
Инкапсулируйте это в функцию с табличным типом return, и вы должны иметь возможность присоединиться к ней в будущих запросах.