DECLARE @calendario TABLE ( Periodo datetime ) ;WITH calendario AS ( SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) AS periodo UNION ALL SELECT DATEADD(MONTH, 1, periodo) FROM calendario ) INSERT INTO @calendario SELECT TOP 12 periodo FROM calendario SELECT * FROM @calendario
il risultato è il seguente: