実は、問題のデータベースはすでにローカルマシン上の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)
混乱の主なポイントは2つありました:
Q:SQL Serverの「デフォルトインスタンス」の名前は何ですか?
A:ありません。
SQL Serverインスタンスを名前で参照する場合、デフォルトインスタンス 名前付きインスタンスがマシンの名前で呼ばれるだけです。 MachineName\InstanceName
で識別されます 。したがって、PANORAMA
という名前のサーバーでは
- SQL Serverの「デフォルトインスタンス」をインストールする場合、それを
PANORAMA
と呼びます。 。 - 「SQLEXPRESS」という「名前付きインスタンス」をインストールする場合、それを
PANORAMA\SQLEXPRESS
と呼びます。 。
ローカルマシン上のSQLサーバーインスタンスを参照している場合は、(local)
を使用できます。 PANORAMA
の代わりに 。
Q:(local)と(localdb)は同じ意味ですか?
A:いいえ。
(local)
および(local)\InstanceName
SQLServerの「実際の」サーバーベースのインスタンスを参照してください。これらは、SQLServerが最初にリリースされてから存在しているインスタンスです。これらはサービスとして実行され、ネットワーク接続を受け入れて、データベースサーバーに期待されるすべてのことを実行できます。
(localdb)
および(localdb)\InstanceName
参照– (localdb)
を使用 通常、(LocalDB)
として大文字になります わかりやすくするために–「SQLServerLocalDB」インスタンスに接続するために使用されます。これらは、主に開発者を対象とした一時的なローカルSQLServerインスタンスです。詳細については、次のMSDNブログ投稿を参照してください。
SQL Express v LocalDB v SQL Compact Edition