/// <summary> /// Enumerates all SQL Server instances on the machine. /// </summary> /// <returns></returns> public List<SqlServerInstanceInformation> EnumerateSqlInstances() { var result = new List<SqlServerInstanceInformation>(); var correctNamespace = GetCorrectWmiNameSpace(); if (!string.Equals(correctNamespace, string.Empty)) { var query = string.Format("select * from SqlServiceAdvancedProperty where SQLServiceType = 1 and PropertyName = 'instanceID'"); using (var getSqlEngine = new ManagementObjectSearcher(correctNamespace, query)) { var engines = getSqlEngine.Get(); if (engines.Count > 0) { foreach (var o in engines) { using (var sqlEngine = (ManagementObject)o) { var serviceName = sqlEngine["ServiceName"].ToString(); var instanceName = GetInstanceNameFromServiceName(serviceName); var version = GetWmiPropertyValueForEngineService(serviceName, correctNamespace, "Version"); var edition = GetWmiPropertyValueForEngineService(serviceName, correctNamespace, "SKUNAME"); var r = new SqlServerInstanceInformation( instanceName, serviceName, version, edition ); result.Add(r); } } } } } return result; }
protected DatabaseFixture( ) { var instance = GetSqlInstance(); this.Instance = instance; }