"Server" vs "Origine dati" nella stringa di connessione


112

Sono nuovo su SqlServer, in questo momento l'ho SqlLocalDbinstallato per lavorare in locale. Bene, ma in genere vedo due stringhe di connessione ed entrambe funzionano:

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

e

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

Quale differenza esatta c'è tra i due?


1
parole chiave correlate per il server, db, il nome utente, la password è elencato in questa risposta: stackoverflow.com/a/15529085/661933
Nawfal

Risposte:


114

Per l'elenco completo di tutte le parole chiave della stringa di connessione, comprese quelle interamente sinonimi, fare riferimento alla SqlConnection.ConnectionStringdocumentazione :

Questi sono tutti del tutto equivalenti:

  • Fonte di dati
  • server
  • Indirizzo
  • Ind
  • Indirizzo di rete

2
Si pone la domanda, perché Microsoft ha creato equivalenti ...? (tranne che per confonderci :-))
bytedev

1
@bytedev - confluenza storica, credo. La maggior parte di questi nomi è stata inizialmente utilizzata in altri "standard" di connessione DB meno recenti. Quando si crea ADO.Net, fintanto che non ci sono utilizzi in conflitto, si può anche consentire a tutti quelli comuni esistenti negli standard precedenti, per facilitare il porting del codice.
Damien_The_Unbeliever

@Damien_The_Unbeliever Cos'è la confluenza ? Ho cercato su Google ma ho trovato un sacco di roba atlassiana (e quella che conosco). Ma qual è il significato della parola? Ho provato "translate: confluence" ma non ho ottenuto
nulla

Può essere utile sapere che, se per qualche motivo la stringa di connessione include più di una di queste parole chiave (e i valori dell'indirizzo sono in conflitto), viene utilizzato l' ultimo elemento; i valori precedenti vengono ignorati. Quindi, ad esempio, data la stringa di connessione Server=192.168.2.2;Data Source=localhost, il client rispetterà il localhostvalore e ignorerà il 192...valore.
Brian Lacy


11

Sono sinonimi: puoi usare entrambi.

Cioè, per quanto riguarda il quadro, sono la stessa cosa.


Ho cercato su Google il motivo dell'intervallo di parole chiave equivalenti nelle stringhe di connessione. Finora non ho trovato una buona spiegazione. Suppongo che sia dovuto a ragioni storiche e all'incontro di utenti di "mondi" diversi. C'è un altro motivo?
DonkeyBanana

0

La mia configurazione preferita è quella che non contiene spazi. Nella forma più semplice, è necessario fornire quattro valori: l'URL, il contenitore, l'utente e la credenziale.

  • server
  • Banca dati
  • uid
  • pwd

Quindi una stringa di connessione ha questo aspetto.

server = stuffy.databases.net; database = chiuso; uid = Konrad; pwd = abc123 (!);


Konrad, penso che i downvoters non abbiano capito quello che hai detto. Intendi, per esempio, il suo "server" migliore di "origine dati" perché una parola non contiene spazi. Lo stesso per "uid" invece di "user id". Penso che la tua risposta sia valida.
Fare clic su Ok

@ClickOk Potrebbe essere, potrebbe essere ... Hai capito, quindi ... :)
Konrad Viltersten
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.