Som det visar sig var databasen i fråga redan kopplad till standardinstansen av SQL Server på den lokala datorn, så allt som behövdes för att ansluta 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)
Det fanns två huvudsakliga förvirringspunkter:
F:Vad är namnet på en SQL Server "standardinstans"?
S:Den har ingen.
När man refererar till en SQL Server-instans med namn, en standardinstans går helt enkelt under namnet på maskinen, medan en namngiven instans identifieras av MachineName\InstanceName
. Så, på en server som heter PANORAMA
- Om vi installerar en "standardinstans" av SQL Server hänvisar vi till den som
PANORAMA
. - Om vi installerar en "namngiven instans" kallad "SQLEXPRESS" hänvisar vi till den som
PANORAMA\SQLEXPRESS
.
Om vi hänvisar till en SQL-serverinstans på den lokala maskinen kan vi använda (local)
istället för PANORAMA
.
F:Betyder (lokal) och (localdb) samma sak?
S:NEJ.
(local)
och (local)\InstanceName
hänvisa till "riktiga" serverbaserade instanser av SQL Server. Det här är de instanser som har funnits sedan SQL Server släpptes först. De körs som en tjänst och kan acceptera nätverksanslutningar och göra allt vi förväntar oss att en databasserver ska göra.
(localdb)
och (localdb)\InstanceName
referenser – med (localdb)
vanligtvis versaler som (LocalDB)
för tydlighetens skull – används för att ansluta till "SQL Server LocalDB"-instanser. Dessa är tillfälliga lokala SQL Server-instanser främst avsedda för utvecklare. Mer information finns i följande MSDN-blogginlägg:
SQL Express v LocalDB v SQL Compact Edition