Jak się okazuje, omawiana baza danych była już podłączona do domyślnej instancji SQL Server na lokalnym komputerze, więc do połączenia wystarczyło tylko
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)
Były dwa główne punkty nieporozumień:
P:Jaka jest nazwa „domyślnej instancji” SQL Server?
O:Nie ma.
Odwołując się do instancji SQL Server według nazwy, instancja domyślna po prostu występuje pod nazwą maszyny, podczas gdy nazwana instancja jest identyfikowany przez MachineName\InstanceName
. Tak więc na serwerze o nazwie PANORAMA
- Jeśli zainstalujemy „domyślną instancję” SQL Server, nazywamy ją
PANORAMA
. - Jeśli zainstalujemy „nazwaną instancję” o nazwie „SQLEXPRESS”, nazywamy ją
PANORAMA\SQLEXPRESS
.
Jeśli mówimy o instancji serwera SQL na komputerze lokalnym, możemy użyć (local)
zamiast PANORAMA
.
P:Czy (local) i (localdb) oznaczają to samo?
O:NIE.
(local)
i (local)\InstanceName
odnoszą się do „prawdziwych” wystąpień SQL Server opartych na serwerze. Są to instancje, które istnieją od czasu pierwszego wydania programu SQL Server. Działają jako usługa i są w stanie akceptować połączenia sieciowe i robić wszystkie rzeczy, których oczekujemy od serwera bazy danych.
(localdb)
i (localdb)\InstanceName
referencje – z (localdb)
zwykle pisane wielką literą jako (LocalDB)
dla jasności – służą do łączenia się z instancjami „SQL Server LocalDB”. Są to tymczasowe lokalne instancje SQL Server przeznaczone głównie dla deweloperów. Szczegółowe informacje można znaleźć w następującym poście na blogu MSDN:
SQL Express v LocalDB v SQL Compact Edition