Я полностью смущен тем, как получить экземпляр локального SQL-сервера. Единственное, что я получаю, это имена серверов. Вот различные подходы я пытался:Получить имя экземпляра локального сервера sql
DataTable availableServers = SmoApplication.EnumAvailableSqlServers([All of the 3 inputs]);
foreach (DataRow serverRow in availableServers.Rows)
{
// foreach row list "Name", "Server", "Instance" etc...
}
и
SqlDataSourceEnumerator sdse = SqlDataSourceEnumerator.Instance;
DataTable table = sdse.GetDataSources();
foreach (DataRow row in table.Rows)
{
// foreach row list "ServerName", "InstanceName", "IsClustered" and "Version"
}
и
ManagedComputer mc = new ManagedComputer();
ServerInstance instance = mc.ServerInstances;
Есть ли какой-то другой способ, я могу получить имя локального экземпляра SQL Server?
Я знаю, что при подключении к SQL-серверу в студии управления диалог подключения отображает мой локальный экземпляр как. \ Sqlexpress или (local) \ sqlexpress. Также при развертывании установки базы данных в InstallShield InstallShield «locate sqlserver» -dialog получает правильный экземпляр для моего локального хоста. Что они делают правильно?
Это была третья попытка, которую я отобразил в своем вопросе. Имя пусто. – humcfc
Возможно, это проблема конфигурации. Я предполагаю, что экземпляр находится на одной машине? Попробовали настройку [ProviderArchitecture] (http://social.msdn.microsoft.com/Forums/en-US/sqlsmoanddmo/thread/32201c6b-a67d-4a40-9504-cc073ee2a20c/)? mc.ConnectionSettings.ProviderArchitecture = ProviderArchitecture.XXX –
Большое спасибо! Придется установить ProviderArchitecture.Use64bit – humcfc