python pyodbc:如何连接到特定实例

2024-05-23 17:15:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试连接到SQL Server的特定实例并从系统表中获取一些数据。正在使用此代码段连接:

connSqlServer = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=192.106.0.102;DATABASE=master;INSTANCE=instance1;UID=sql2008;PWD=password123;Trusted_Connection=yes')
...
cursorObj.execute("select * from sys.dm_os_sys_info")
row = cursorObj.fetchone()
print("rows from table ",row) 

不过,我只获取默认实例的值,但无法获取“instance1”的值。所以,在'instance=instance1'中指定实例名似乎真的没有效果。即使没有它(尝试给出实例的端口号“PORT=1443”),am也只获取默认SQL Server实例的值。如何强制它获取特定实例的值?


Tags: 数据实例fromsqlserver系统代码段driver
1条回答
网友
1楼 · 发布于 2024-05-23 17:15:13

身份验证

首先,您同时提供uid/pwd(SQL Server身份验证)和trusted_connection(Windows身份验证)。选一个,你不能两个都用。对于以下示例,我将假定使用SQL Server身份验证。

连接字符串

使用实例名连接到命名实例instance1:

connSqlServer = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=192.106.0.102\instance1;DATABASE=master;UID=sql2008;PWD=password123')

使用端口号1443使用TCP/IP连接到命名实例:

connSqlServer = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=192.106.0.102,1443;DATABASE=master;UID=sql2008;PWD=password123')

关键字替代

pyodbc.connect()支持关键字,我认为这些关键字更容易阅读,如果您使用变量作为连接字符串属性,则不必进行任何字符串格式设置:

命名实例:

connSqlServer = pyodbc.connect(driver='{SQL Server Native Client 10.0}',
                               server='192.106.0.102\instance1',
                               database='master',
                               uid='sql2008',pwd='password123')

TCP/IP端口:

connSqlServer = pyodbc.connect(driver='{SQL Server Native Client 10.0}',
                               server='192.106.0.102,1443',
                               database='master',
                               uid='sql2008',pwd='password123')

相关问题 更多 >