A quanto pare, il database in questione era già collegato all'istanza predefinita di SQL Server sul computer locale, quindi tutto ciò che era necessario per connettersi era
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)
C'erano due punti principali di confusione:
D:Qual è il nome di un'"istanza predefinita" di SQL Server?
A:Non ne ha uno.
Quando si fa riferimento a un'istanza di SQL Server per nome, un'istanza predefinita va semplicemente con il nome della macchina, mentre un'istanza denominata è identificato da MachineName\InstanceName
. Quindi, su un server chiamato PANORAMA
- Se installiamo una "istanza predefinita" di SQL Server, la chiamiamo
PANORAMA
. - Se installiamo una "istanza denominata" chiamata "SQLEXPRESS" la chiamiamo
PANORAMA\SQLEXPRESS
.
Se ci riferiamo a un'istanza del server SQL sulla macchina locale, possiamo usare (local)
invece di PANORAMA
.
D:(local) e (localdb) significano la stessa cosa?
R:NO.
(local)
e (local)\InstanceName
fare riferimento a istanze "reali" basate su server di SQL Server. Queste sono le istanze in circolazione da quando SQL Server è stato rilasciato per la prima volta. Funzionano come un servizio e sono in grado di accettare connessioni di rete e fare tutte le cose che ci aspettiamo da un server di database.
(localdb)
e (localdb)\InstanceName
riferimenti – con (localdb)
di solito in maiuscolo come (LocalDB)
per chiarezza, vengono utilizzati per connettersi a istanze "SQL Server LocalDB". Si tratta di istanze locali temporanee di SQL Server destinate principalmente agli sviluppatori. Per i dettagli, vedere il seguente post del blog MSDN:
SQL Express v LocalDB v SQL Compact Edition