作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试连接到 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”),我也只能获取默认 SQL Server 实例的值。如何强制它获取特定实例的值?
最佳答案
首先,您要同时提供 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')
关于 python pyodbc : how to connect to a specific instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505081/
我是一名优秀的程序员,十分优秀!