"Servidor" vs "Fonte de Dados" na string de conexão
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;
Server=(localdb)\v11.0;Integrated Security=true;
Que diferença exata existe entre os dois?
sql-server connection-string sqldatasource localdb
palavras-chave relacionadas para servidor, db, nome de usuário, senha estão listadas nesta resposta: stackoverflow.com/a/15529085/661933
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:
Fica a pergunta: por que a Microsoft criou equivalentes ...? (exceto para nos confundir :-))
— bytedev
@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 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 ...
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.
... Não há diferença entre Server e Data Source, pois eles representam a mesma coisa para SQL Server: o nome completo da instância do SQL Server com a sintaxe "MyComputerName \ MyShortInstanceName", potencialmente incluindo a porta usada pela instância do SQL Server para comunicar.
Referência: http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/7e3cd9b2-4eed-4103-a07a-5ca2cd33bd21
— Exel Gamboa
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
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.
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.