Som det viser sig, var den pågældende database allerede knyttet til standardforekomsten af SQL Server på den lokale maskine, så det eneste, der var nødvendigt for at oprette forbindelse, var
import pyodbc
conn_str = (
r"Driver={SQL Server Native Client 11.0};"
r"Server=(local);"
r"Database=online_banking;"
r"Trusted_Connection=yes;"
)
conn = pyodbc.connect(conn_str)
Der var to hovedpunkter til forveksling:
Sp:Hvad er navnet på en SQL Server "standardforekomst"?
A:Den har ikke en.
Når der refereres til en SQL Server-instans ved navn, en standardinstans går simpelthen under navnet på maskinen, mens en navngiven instans er identificeret med MachineName\InstanceName
. Altså på en server ved navn PANORAMA
- Hvis vi installerer en "standardinstans" af SQL Server, kalder vi den
PANORAMA
. - Hvis vi installerer en "navngiven forekomst" kaldet "SQLEXPRESS", refererer vi til den som
PANORAMA\SQLEXPRESS
.
Hvis vi henviser til en SQL-serverinstans på den lokale maskine, kan vi bruge (local)
i stedet for PANORAMA
.
Sp:Betyder (lokal) og (localdb) det samme?
A:NEJ.
(local)
og (local)\InstanceName
henvise til "rigtige" server-baserede forekomster af SQL Server. Dette er de forekomster, der har eksisteret siden SQL Server blev udgivet første gang. De kører som en tjeneste og er i stand til at acceptere netværksforbindelser og gøre alle de ting, vi forventer, at en databaseserver gør.
(localdb)
og (localdb)\InstanceName
referencer – med (localdb)
normalt med stort bogstav som (LocalDB)
for klarhedens skyld – bruges til at oprette forbindelse til "SQL Server LocalDB"-instanser. Disse er midlertidige lokale SQL Server-instanser, primært beregnet til udviklere. Se følgende MSDN-blogindlæg for detaljer:
SQL Express v LocalDB v SQL Compact Edition