There are occasions where you need multiple versions of SQL Server running at the same time and you may not have sufficient hardware to run them on separate machines.

The traditional approach to this is to run an instance of each version, in fact I have one demo rig which has an instance of SQL Server 2000, 2005, and 2008 all running on Windows Server 2008 it’s not supported but hey it works and allows je to test all my upgrade scenarios.

However if you are worried about versions of some of the common components (more information on this is on TechNet here)  then a better way of isolating them is to virtualise them using Hyper-V.  This also has a number of other benefits:

  • You can run each version on a different version of the operating system e.g. SQL Server 2000 on Windows 2003, SQL Server 2005 on windows server 2003 r2 and SQL Server 2008 on Windows Server 2008.
  • You can mix 32  and 64 bit installations
  • You can snapshot and revert to a an earlier state very easily.
  • You can quickly stop the version you don’t want.

Of course this approach does have licensing implications if you are in production and for that you need to understand how the different editions of SQL Server are licensed here.  You might still want to take advantages of using a virtual machine to test the configuration of a production box.

So in my opinion hyper-v is the answer what’s the question?