También puedes solucionarlo usando una
tabla de números. Algo muy útil para solucionar muchos tipos de problemas sin usar bucles o cursores.
Bueno, en caso de que no tengas una ya creada prueba con este script:
Código:
--En caso de que no la tengas ya creada, creamos una con unos cuantos valores
DECLARE @numbers TABLE(N INT NOT NULL)
INSERT INTO @numbers
SELECT 0 UNION ALL
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9
--Código que nos interesa
-----------------------
SELECT DATEADD(mm, N, '20071201')
FROM @numbers --Tabla de números
WHERE N <= DATEDIFF(mm, '20071201', '20080331')