«Сервер» или «Источник данных» в строке подключения

113

Я новичок в SqlServer, сейчас я SqlLocalDbустановил его для работы локально. Хорошо, но я обычно вижу две строки подключения, и обе работают:

Data Source=(localdb)\v11.0;Integrated Security=true;

и

Server=(localdb)\v11.0;Integrated Security=true;

Какая точная разница между ними?

Навфал
источник
1
связанные ключевые слова для сервера, базы данных, имени пользователя и пароля перечислены в этом ответе: stackoverflow.com/a/15529085/661933
nawfal 02

Ответы:

114

Полный список всех ключевых слов строки подключения, включая полностью синонимичные, можно найти в SqlConnection.ConnectionStringдокументации :

Все они полностью эквивалентны:

  • Источник данных
  • Сервер
  • Адрес
  • Addr
  • Сетевой адрес
Damien_The_Unbeliever
источник
2
Напрашивается вопрос, зачем Microsoft создала эквиваленты ...? (кроме того, чтобы запутать нас :-))
bytedev
1
@bytedev - историческое совпадение, я считаю. Большинство этих имен изначально использовалось в других, более старых «стандартах» соединений с БД. При построении ADO.Net, если нет конфликтующих способов использования, вы можете разрешить столько общих, сколько существует в старых стандартах, чтобы упростить перенос кода.
Damien_The_Unbeliever
@Damien_The_Unbeliever Что такое слияние ? Я погуглил, но получил много материалов об Atlassian (и то, что я знаю). Но что это за слово означает? Я попробовал "перевести: слияние", но понял, что нет ...
Конрад Вилтерстен
Может быть полезно знать, что, если по какой-либо причине ваша строка подключения включает более одного из этих ключевых слов (и значения адресов конфликтуют), используется последний элемент; предыдущие значения игнорируются. Так, например, учитывая строку подключения, Server=192.168.2.2;Data Source=localhostклиент будет localhostучитывать значение и игнорировать 192...значение.
Брайан Лейси,
17

... Нет разницы между сервером и источником данных, поскольку они представляют одно и то же для SQL Server: полное имя экземпляра SQL Server с синтаксисом «MyComputerName \ MyShortInstanceName», потенциально включая порт, используемый экземпляром SQL Server для общаться.

Ссылка: http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/7e3cd9b2-4eed-4103-a07a-5ca2cd33bd21

Эксель Гамбоа
источник
11

Они синонимы - вы можете использовать любой из них.

То есть - что касается фреймворка, то они одинаковые.

Одед
источник
Я искал в Google по причине диапазона эквивалентных ключевых слов в строках подключения. Пока я не нашел хорошего объяснения. Я предполагаю, что это связано с историческими причинами и объединением пользователей из разных «миров». Есть еще одна причина?
DonkeyBanana
0

Моя любимая установка - это такая, в которой нет пробелов. В простейшей форме необходимо предоставить четыре значения - URL-адрес, контейнер, пользователя и учетные данные.

  • сервер
  • база данных
  • UID
  • PWD

Итак, строка подключения выглядит так.

server = stuffy.databases.net; база данных = stuffy; uid = konrad; pwd = Abc123 (!);

Конрад Вильтерстен
источник
Конрад, я думаю, отрицатели не поняли, что вы сказали. Вы имеете в виду, например, что лучше «сервер», чем «источник данных», потому что одно слово не содержит пробелов. То же самое для «uid» вместо «user id». Думаю, ваш ответ верен.
Нажмите "ОК",
@ClickOk Может быть, может быть ... Но вы поняли, так что ... :)
Конрад Вильтерстен,