“Servidor” vs “Fonte de Dados” na string de conexão


112

Eu sou novo no SqlServer, agora SqlLocalDbinstalei para trabalhar localmente. Bom, mas posso ver duas strings de conexão normalmente e ambas funcionam:

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

e

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

Que diferença exata existe entre os dois?


1
palavras-chave relacionadas para servidor, db, nome de usuário, senha estão listadas nesta resposta: stackoverflow.com/a/15529085/661933
nawfal

Respostas:


114

Para obter a lista completa de todas as palavras-chave da string de conexão, incluindo aquelas que são totalmente sinônimas, consulte a SqlConnection.ConnectionStringdocumentação :

Todos são totalmente equivalentes:

  • Fonte de dados
  • Servidor
  • Endereço
  • Addr
  • Endereço de rede

2
Fica a pergunta: por que a Microsoft criou equivalentes ...? (exceto para nos confundir :-))
bytedev

1
@bytedev - confluência histórica, eu acredito. A maioria desses nomes começou sendo usada em outros "padrões" de conexão de banco de dados mais antigos. Ao construir o ADO.Net, contanto que não haja usos conflitantes, você também pode permitir tantos usos comuns quanto existem em padrões mais antigos, para facilitar a portabilidade do código.
Damien_The_Unbeliever

@Damien_The_Unbeliever O que é confluência ? Eu pesquisei, mas encontrei um monte de coisas do Atlassian (e esse eu conheço). Mas qual é o significado da palavra? Eu tentei "traduzir: confluência", mas não consegui ...
Konrad Viltersten

Pode ser útil saber que, se por algum motivo sua string de conexão incluir mais de uma dessas palavras-chave (e os valores de endereço entrarem em conflito), o último item será usado; os valores anteriores são ignorados. Assim, por exemplo, dada a string de conexão,, Server=192.168.2.2;Data Source=localhosto cliente honrará o localhostvalor e ignorará o 192...valor.
Brian Lacy


11

Eles são sinônimos - você pode usar qualquer um.

Isto é - no que diz respeito à estrutura, eles são os mesmos.


Estive googlearching para o motivo da gama de palavras-chave equivalentes nas strings de conexão. Até agora, não encontrei uma boa explicação. Estou assumindo que é devido a razões históricas e usuários de diferentes "mundos" se unindo. Existe outro motivo?
DonkeyBanana

0

Minha configuração favorita é aquela que não contém espaços. Na forma mais simples, é necessário fornecer quatro valores - a URL, o contêiner, o usuário e a credencial.

  • servidor
  • base de dados
  • uid
  • pwd

Portanto, uma string de conexão se parece com isso.

server = stuffy.databases.net; database = stuffy; uid = konrad; pwd = Abc123 (!);


Konrad, acho que os downvoters não entenderam o que você disse. Você quer dizer, por exemplo, que é melhor "servidor" do que "fonte de dados" porque uma palavra não contém espaços. O mesmo para "uid" em vez de "id do usuário". Eu acho que sua resposta é válida.
Clique em Ok

@ClickOk Pode ser, pode ser ... Você entendeu, então ... :)
Konrad Viltersten
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.