Как перечислить доступные экземпляры SQL Server с помощью SMO в C#?

Просто $ (знак доллара) ключ. Можно использовать , чтобы переместиться до конца строки и переключиться на режим редактирования (Добавляют). Для перехода последнего несимвола пробела можно нажать g тогда _ ключи.

противоположность является мной (Режим вставки в начале строки), как в стороне. Нажатие просто ^ установит Ваш курсор в начале строки.

5
задан marc_s 15 July 2009 в 12:03
поделиться

3 ответа

У вас есть SQL-сервер с именем экземпляра Test ? Если нет, то это ваша проблема.

Похоже, вы пытаетесь перечислить все локальные экземпляры SQL Server. Если да, то этот код будет работать:

DataTable dt = SmoApplication.EnumAvailableSqlServers(true);

foreach (DataRow dr in dt.Rows)
{
    Console.WriteLine(dr["Name"]);
    Console.WriteLine("   " + dr["Server"]);
    Console.WriteLine("   " + dr["Instance"]);
    Console.WriteLine("   " + dr["Version"]);
    Console.WriteLine("   " + dr["IsLocal"]);
}
6
ответ дан 18 December 2019 в 08:30
поделиться

Взгляните на следующие ссылки, они могут быть полезны:

В качестве альтернативы вы можете изменить свой код на этот:

DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
if (dt.Rows.Count > 0)
{
    foreach (DataRow dr in dt.Rows)
    {
        Console.WriteLine(dr["Name"]);
    }
}

Надеюсь, это решит вашу проблему.

10
ответ дан 18 December 2019 в 08:30
поделиться

Just in case the question is titled wrong i.e. he wants to find the databases in the particular instance:

using System;
using Microsoft.SqlServer.Management.Smo;
using System.Data;
using System.Windows.Forms;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Server sr = new Server("MACHINE_NAME\\INSTANCE_NAME");

            try
            {
                foreach (Database db in sr.Databases)
                {
                    Console.WriteLine(db.Name);
                }
                Console.Read();
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString());
            }
        }
    }
}

Else Lucas Aardvark answer is most appropriate.

2
ответ дан 18 December 2019 в 08:30
поделиться