#SQLHacker: Determine if You’re SQL Instance is on a VM Using T/SQL
@@: It’s Not Just a Method of Imperial Troop Transport
SELECT @@VERSION; It’s been a valid statement in Microsoft SQL Sever since at least SQL Server 2000. (One could assume further back then 2000 even, but if you’re lucky you don’t have any SQL B.2K. instances to test against.)
Every version of SQL Server since 2008 has allowed you to use the SELECT @@VERSION; command to return not only information on both the version and patch level of SQL Server and the Windows operating system it’s running on, but also on whether the instance is virtualized. The terminology may differ, but the information is there. Each of the instances below are running on a guest OS on the same VMware Host:
SQL 2005 Results Sample
Microsoft SQL Server 2005 - 9.00.5000.00 (X64) Dec 10 2010 10:38:40 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)
SQL 2008 Results Sample
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (VM)
SQL 2008R2 Results Sample
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)
SQL 2012 Results Sample
Microsoft SQL Server 2012 - 11.0.2100.60 (X64) Feb 10 2012 19:39:15 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)
We’re running SQL Server 2008R2 on a Citrix XenServer and get a string that doesn’t contain any info on VM or Hypervisor. I could test on VMWare Workstation also with a little effort.
Is this just true for MS virtualization?
I really wanted to also let you know that your blog entries about your son’s travails were very moving. I deeply hope that he is doing well now. My partner has a daughter to also came down with life-threatening abdominal abscesses (staph?) and was in IC for two weeks.
Best.
“not only information on both the version and patch level of SQL Server and the Windows operating system it’s running on, but also on whether the instance is virtualized.”
I’m not seeing it for SQL 2005, in the article examples, or on my own servers.