After an in place upgrade, what next?

  • I have done many in place upgrades but never was asked this question as I never thought about it.  Can you then uninstall the previous version of SQL Server.

    Here is the scenario, the SA's or FSR's onsite run the upgrade installer that includes in the in place upgrade from SQL Server 2008 R2 to SQL Server 2012 (both standard edition).  Everything works great and SQL Server 2012 runs, SSMS 2012 runs, but you still have the 2008 directories on the system.  What to do with them.  When I did these upgrades, I just left the legacy directories alone.  They didn't take up much space, didn't get in the way of anything that I saw.

    They want to know if they can uninstall them using the Control Panel (not sure this is a good idea, but that's why I am asking), or is there something else they can do, or should they just leave them alone.

  • Lynn Pettis - Wednesday, January 25, 2017 11:22 AM

    I have done many in place upgrades but never was asked this question as I never thought about it.  Can you then uninstall the previous version of SQL Server.

    Here is the scenario, the SA's or FSR's onsite run the upgrade installer that includes in the in place upgrade from SQL Server 2008 R2 to SQL Server 2012 (both standard edition).  Everything works great and SQL Server 2012 runs, SSMS 2012 runs, but you still have the 2008 directories on the system.  What to do with them.  When I did these upgrades, I just left the legacy directories alone.  They didn't take up much space, didn't get in the way of anything that I saw.

    They want to know if they can uninstall them using the Control Panel (not sure this is a good idea, but that's why I am asking), or is there something else they can do, or should they just leave them alone.

    I have never done an in-place upgrade so I cannot talk from that particular experience.

    However, I did do a lot of cleean installs, and even those create directories for earlier versions. Apparently, there are some legacy components that need to exist, and need to exist in that place.
    So I suggest that you be VERy careful with uninstalling or otherwise removing any stuff. If you company/client is really hell-bent on removing as much as possible, then set up a VM, do a clean install, and see what you have on the upgraded system that is not on the clean instal. Then set up another VM, install 2008 R2, upgrade in place to 2012, remove what you plan to remove on the real production system and test the living daylight out of that VM to make sure that you know if this does really work.
    (I am pretty sure that the hours you are going to put into this will be way more than a smart company should spend on this)


    Hugo Kornelis, SQL Server/Data Platform MVP (2006-2016)
    Visit my SQL Server blog: https://sqlserverfast.com/blog/
    SQL Server Execution Plan Reference: https://sqlserverfast.com/epr/

  • I haven't thought about this, but the in-place upgrade is supposed to replace the existing product. Once you do this, you cannot go back.

    As Hugo mentioned, I'd be very careful here about uninstalling items. you could easily break the upgraded instance.

  • Steve Jones - SSC Editor - Thursday, January 26, 2017 9:44 AM

    I haven't thought about this, but the in-place upgrade is supposed to replace the existing product. Once you do this, you cannot go back.

    As Hugo mentioned, I'd be very careful here about uninstalling items. you could easily break the upgraded instance.

    Glad to know I am not the only one that hadn't thought about this.  Would like to hear from some others.  At this time I have recommended not touching anything without a lot of testing that Hugo had suggested.

  • Here is my uncommented attempt at this:

    create table #TestDates (
      TestDateID int identity(1,1),
      TestDate1 date,
      TestDate2 date
    );

    with e1(n) as (select 1 from (values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))dt(n)),
         e2(n) as (select ROW_NUMBER() over (order by (select null)) from e1 a cross join e1 b),
         getdates as (select n, dateadd(day,BINARY_CHECKSUM(newid()) % 360,cast(getdate() as date)) date1, dateadd(day,BINARY_CHECKSUM(newid()) % 360,cast(getdate() as date)) date2 from e2)
    insert into #TestDates(TestDate1,TestDate2)
    select
      ot.date1,
      ot.date2
    from
      getdates gd
      cross apply (select MIN(val1), MAX(val1) from (values(gd.date1),(gd.date2))dt(val1))ot(date1,date2); -- this ensures the TestDate1 <= TestDate2
    go

    select
      TestDateID
      , TestDate1
      , TestDate2
      --, DATEDIFF(YEAR,TestDate1,TestDate2)
      , DATEDIFF(YEAR,TestDate1,TestDate2) - case when DATEADD(YEAR, -1 * DATEDIFF(YEAR,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end
      --, DATEDIFF(MONTH,TestDate1,TestDate2)
      --, DATEDIFF(MONTH,TestDate1,TestDate2) - case when DATEADD(MONTH, -1 * DATEDIFF(MONTH,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end
      , (DATEDIFF(MONTH,TestDate1,TestDate2) - case when DATEADD(MONTH, -1 * DATEDIFF(MONTH,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end) % 12
      --, DATEDIFF(DAY,TestDate1,TestDate2)
      , DATEDIFF(DAY,DATEADD(MONTH,(DATEDIFF(MONTH,TestDate1,TestDate2) - case when DATEADD(MONTH, -1 * DATEDIFF(MONTH,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end) % 12,DATEADD(YEAR,DATEDIFF(YEAR,TestDate1,TestDate2) - case when DATEADD(YEAR, -1 * DATEDIFF(YEAR,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end,TestDate1)),TestDate2)
      , isnull(nullif(cast(DATEDIFF(YEAR,TestDate1,TestDate2) - case when DATEADD(YEAR, -1 * DATEDIFF(YEAR,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end as varchar(10)),0) + ' Year, ','') +
        isnull(nullif(cast((DATEDIFF(MONTH,TestDate1,TestDate2) - case when DATEADD(MONTH, -1 * DATEDIFF(MONTH,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end) % 12 as varchar(10)),0) + ' Month, ','') +
        isnull(nullif(cast(DATEDIFF(DAY,DATEADD(MONTH,(DATEDIFF(MONTH,TestDate1,TestDate2) - case when DATEADD(MONTH, -1 * DATEDIFF(MONTH,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end) % 12,DATEADD(YEAR,DATEDIFF(YEAR,TestDate1,TestDate2) - case when DATEADD(YEAR, -1 * DATEDIFF(YEAR,TestDate1,TestDate2), TestDate2) < TestDate1 then 1 else 0 end,TestDate1)),TestDate2) as varchar(10)),0) + ' Days','')
    from
      #TestDates;
    go

    drop table #TestDates;

  • Was that supposed to be in another thread?

  • Steve Jones - SSC Editor - Thursday, January 26, 2017 1:06 PM

    Was that supposed to be in another thread?

    Too many windows and tabs.  Yes, it was.  I thought I was in the appropriate thread. 

Viewing 7 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic. Login to reply