/// <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;
        }
示例#2
0
 protected DatabaseFixture(
     )
 {
     var instance = GetSqlInstance();
     this.Instance = instance;
 }