Acontece que o banco de dados em questão já estava anexado à instância padrão do SQL Server na máquina local, então tudo o que era necessário para conectar 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)
Havia dois pontos principais de confusão:
P:Qual é o nome de uma "instância padrão" do SQL Server?
R:Não tem.
Ao se referir a uma instância do SQL Server pelo nome, uma instância padrão simplesmente atende pelo nome da máquina, enquanto uma instância nomeada é identificado por
MachineName\InstanceName
. Então, em um servidor chamado PANORAMA
- Se instalarmos uma "instância padrão" do SQL Server, nos referimos a ela como
PANORAMA
. - Se instalarmos uma "instância nomeada" chamada "SQLEXPRESS", nos referimos a ela como
PANORAMA\SQLEXPRESS
.
Se estivermos nos referindo a uma instância do servidor SQL na máquina local, podemos usar
(local)
em vez de PANORAMA
. P:(local) e (localdb) significam a mesma coisa?
R:NÃO.
(local)
e (local)\InstanceName
consulte instâncias baseadas em servidor "reais" do SQL Server. Essas são as instâncias que existem desde o lançamento do SQL Server. Eles são executados como um serviço e são capazes de aceitar conexões de rede e fazer todas as coisas que esperamos que um servidor de banco de dados faça. (localdb)
e (localdb)\InstanceName
referências – com (localdb)
geralmente em maiúsculas como (LocalDB)
para maior clareza – são usados para se conectar a instâncias do "SQL Server LocalDB". Essas são instâncias locais temporárias do SQL Server destinadas principalmente a desenvolvedores. Para obter detalhes, consulte a seguinte postagem de blog do MSDN:SQL Express v LocalDB v SQL Compact Edition