• declare @month table(months varchar(30))

    declare @date1 datetime

    declare @date2 datetime

    set @date1='10/1/2011'

    set @date2='9/1/2010'

    declare @year1 int

    declare @year2 int

    set @year1= year(@date1)

    set @year2= year(@date2)

    declare @month1 int

    declare @month2 int

    set @month1=month(@date1)

    set @month2=month(@date2)

    declare @count int

    declare @monthname datetime

    if (@year1<>@year2)

    begin

    if @month1=@month2

    set @count=12

    else if @month1<>@month2

    set @count=12-ABS(@month1-@month2)+1

    if @date1<@date2

    set @monthname=@date1

    else if @date2<@date1

    set @monthname=@date2

    while @count>0

    begin

    insert @month(months)

    select datename(month,@monthname)

    set @monthname=dateadd(mm,1,@monthname)

    set @count=@count-1

    end

    end

    if @year1=@year2

    begin

    if @month1=@month2

    set @count=1

    else if @month1<>@month2

    set @count=ABS(@month2-@month1)+1

    if @date1<@date2

    set @monthname=@date1

    else if @date2<@date1

    set @monthname=@date2

    while @count>0

    begin

    insert @month(months)

    select datename(month,@monthname)

    set @monthname=dateadd(mm,1,@monthname)

    set @count=@count-1

    end

    end

    select * from @month