CREATE TABLE calendar (dt DATE NOT NULL PRIMARY KEY); DECLARE @StartDt DATE = '1900-01-01'; DECLARE @EndDt DATE = '2100-01-01'; WITH dt(Date) AS ( SELECT @StartDt UNION ALL SELECT DATEADD(DAY,1,Date) FROM dt WHERE DATEADD(DAY,1,Date) < @EndDt ) INSERT INTO calendar (dt) SELECT Date FROM dt OPTION (MAXRECURSION 0);