"Сервер" проти "Джерело даних" у рядку з'єднання


112

Я новачок у SqlServer, зараз я SqlLocalDbвстановив роботу на місцевому рівні. Добре, але я можу бачити два рядки підключення, і обидва працюють:

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

і

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

Яка точна різниця між ними?


1
пов'язані ключові слова для сервера БД, ім'я користувача, пароль вказано в цій відповіді: stackoverflow.com/a/15529085/661933
Навфал

Відповіді:


114

Повний список усіх ключових слів рядка з'єднання, включаючи цілком синонімічні, див. У SqlConnection.ConnectionStringдокументації :

Усі ці цілком еквівалентні:

  • Джерело даних
  • Сервер
  • Адреса
  • Доп
  • Мережева адреса

2
Постає питання, чому Microsoft створила еквіваленти ...? (окрім того, щоб нас бентежити :-))
bytedev

1
@bytedev - історичне злиття, я вважаю. Більшість цих імен почали використовуватись в інших, старих "стандартах" з'єднання БД. Під час створення ADO.Net, якщо не існують суперечливі звички, ви також можете дозволити стільки поширених, які існують у старих стандартах, щоб полегшити перенесення коду.
Damien_The_Unbeliever

@Damien_The_Unbeliever Що таке злиття ? Я гуглив це, але отримав багато атлаських речей (і того, кого я знаю). Але що таке слово? Я спробував "перекласти: злиття", але отримав нада ...
Конрад Вільтерстен

Може бути корисним знати, що якщо з якоїсь причини рядок з'єднання містить більше ніж одне з цих ключових слів (і конфліктні значення конфлікту), використовується останній елемент; попередні значення ігноруються. Так, наприклад, з огляду на рядок з'єднання, 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

Вони є синонімами - ви можете використовувати будь-який.

Тобто - що стосується рамки, то вони однакові.


Я шукав googlearching через причину діапазону еквівалентних ключових слів у рядках з'єднання. Поки що я не знайшов хорошого пояснення. Я припускаю, що це пов’язано з історичними причинами та тим, що користувачі з різних "світів" збираються разом. Чи є ще одна причина?
DonkeyBanana

0

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

  • сервер
  • база даних
  • uid
  • pwd

Отже, рядок з'єднання виглядає приблизно так.

сервер = stuffy.databases.net; база даних = душно; uid = konrad; pwd = Abc123 (!);


Конраде, я думаю, що породні люди не зрозуміли, що ти сказав. Ви маєте на увазі, наприклад, його кращий "сервер", ніж "джерело даних", оскільки одне слово не містить пробілів. Те саме для "uid" замість "ідентифікатор користувача". Я думаю, що ваша відповідь справедлива.
Клацніть OK

@ClickOk Можливо, може бути ... Ви це все-таки зрозуміли ... :)
Konrad Viltersten
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.