найти правильную строку подключения для локального экземпляра SQL - PullRequest
3 голосов
/ 04 мая 2011

Я пытаюсь создать строку подключения для тестовой среды, которая будет подключаться к локальному экземпляру SQL Server на разных компьютерах.Цель этого состоит в том, чтобы разработчик мог извлекать код из TFS, собирать его и запускать тестовые сценарии, подключаясь к своей локальной БД.Проблема в том, что на разных машинах разработчика могут быть разные настройки SQL Server.В частности, некоторые могут работать на полном сервере, другие могут использовать SQL Server Express.

Я пытаюсь исправить служебную процедуру, которая будет принимать строку подключения шаблона (например, Data Source=(local); Initial Catalog= myDB; Integrated Security=SSPI;) и изменятьИсточник данных для работы с локальным сервером.

Я пытался использовать SmoApplication.EnumAvailableServers() (возвращает пустую таблицу, независимо от того, использую я параметры true или false) и SqlDataSourceEnumerator.GetDataSources() (возвращает 2888 серверов изсеть, но не на локальной машине), SQLCMD -L (ничего не возвращает).

Есть предложения?

В альтернативном варианте, есть ли простой способ определить, будет ли конкретная строка подключенияподключиться к серверу (не дожидаясь истечения времени ожидания, если это не так).Если бы я мог найти ответ на этот вопрос, я мог бы судить вероятных подозреваемых, пока не заставлю одного работать.

Ответы [ 4 ]

2 голосов
/ 07 марта 2013

вы можете попытаться получить строку подключения следующим образом:

  1. Создайте новый пустой файл и назовите его test.udl.

  2. Дважды щелкните его, и появится диалоговое окно «Свойства ссылки на данные».

  3. На вкладке «Поставщики» выберите «Поставщик Microsoft OLE DB для SQL Server» или «Собственный клиент SQL»

  4. На вкладке «Подключения» попробуйте различные параметры и используйте кнопку «Проверить подключение», чтобы проверить их.Нажмите «ОК», когда все заработает.

  5. Откройте файл test.udl в Блокноте и скопируйте строку, которая начинается с «Provider =», в значение Web.config «ConnectionString», НОудалите небольшую часть с надписью «Provider = SQLNCLI.1;»

1 голос
/ 04 мая 2011

Если вы хотите, чтобы каждый разработчик работал со своим собственным локальным сервером SQL, то в строке подключения ADO должен быть установлен источник данных: localhost

... ; Data Source=localhost; ...

Кроме того, чтобы получить список текущих серверов, перейдитев командной строке и запустите

osql -L
0 голосов
/ 05 февраля 2012

Вы можете заглянуть в реестр, чтобы найти все локальные экземпляры SQL Server. Этот ключ содержит список: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL.

Каждый именованный экземпляр будет иметь значение в этом ключе. Для именованных экземпляров имя значения совпадает с именем экземпляра. Для экземпляра по умолчанию значение будет иметь имя MSSQLSERVER.

0 голосов
/ 04 мая 2011

Это поможет:

Data Source=.\SQLEXPRESS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...