Както се оказва, въпросната база данни вече е била прикрепена към стандартния екземпляр на SQL Server на локалната машина, така че всичко, което е било необходимо за свързване, е
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)
Имаше две основни точки на объркване:
В:Какво е името на "екземпляр по подразбиране" на SQL Server?
О:Няма такъв.
Когато се позовава на екземпляр на SQL Server по име, екземпляр по подразбиране просто върви по името на машината, докато именуван екземпляр се идентифицира с MachineName\InstanceName . И така, на сървър с име PANORAMA
- Ако инсталираме „екземпляр по подразбиране“ на SQL Server, ние го наричаме
PANORAMA. - Ако инсталираме „именуван екземпляр“, наречен „SQLEXPRESS“, ние го наричаме
PANORAMA\SQLEXPRESS.
Ако се позоваваме на екземпляр на SQL сървър на локалната машина, можем да използваме (local) вместо PANORAMA .
В:(local) и (localdb) означават ли едно и също нещо?
О:НЕ.
(local) и (local)\InstanceName отнасят се до "истински" базирани на сървър екземпляри на SQL Server. Това са случаите, които съществуват откакто SQL Server беше пуснат за първи път. Те работят като услуга и са в състояние да приемат мрежови връзки и да правят всички неща, които очакваме от сървъра на база данни.
(localdb) и (localdb)\InstanceName препратки – с (localdb) обикновено се изписва с главни букви като (LocalDB) за яснота – се използват за свързване към екземпляри на "SQL Server LocalDB". Това са временни локални екземпляри на SQL Server, предназначени предимно за разработчици. За подробности вижте следната публикация в блога на MSDN:
SQL Express v LocalDB v SQL Compact Edition