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


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
  • Сетевой адрес

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 Может быть, может быть ... Но вы поняли, так что ... :)
Конрад Вильтерстен,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.