using CTE:-DECLARE @year varchar(4)set @year='2008';With Month_CTE (Date,MonthVal,MonthName,Level) as(select DATEADD(m,0,@year),DATEPART(mm,DATEADD(m,0,@year)) as MonthVal,LEFT(DATENAME(mm,DATEADD(m,0,@year)),3),1UNION ALLselect DATEADD(m,1,Date),DATEPART(mm,DATEADD(m,1,Date)) as MonthVal,LEFT(DATENAME(mm,DATEADD(m,1,Date)),3),Level + 1FROM Month_CTEWHERE Level <=11)SELECT MonthVal,MonthName FROM Month_CTEoutput----------------------------MonthVal MonthName----------- ---------1 Jan2 Feb3 Mar4 Apr5 May6 Jun7 Jul8 Aug9 Sep10 Oct11 Nov12 Dec