Както се оказва, въпросната база данни вече е била прикрепена към стандартния екземпляр на 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