• I think this is an even more important question now that we're entering what, bi-yearly or is it now yearly release cycles?  Does anyone know how the CAL licencing works these days (we use SQL Express, currently 2016, so doesn't apply - small company, small databases - but may at some point)?  If we get SQL 2017 Standard with an additional 10 CALs (Core licensing is way out of our price range) can these CALs be moved to SQL 2018/19 when upgraded, or is that a new set of CALs and 2017's are essentially useless?

    Not that we'd go with such an upgrade path.  To answer the original question I would expect at least 5 years service out of a version.  Personally I look at each new release and see what it offers.  We'd still be on 2012 if not for the native JSON parsing that 2016 SP1 introduced.