Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MS SQL无效的对象名称_Python_Sql Server_Pyodbc - Fatal编程技术网

Python MS SQL无效的对象名称

Python MS SQL无效的对象名称,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我有 这给了我回溯错误: cursor.execute("select RM_ID FROM Sales.dbo.MARKETING where VERSION = 'SomeVersion'") 我还有其他几行代码: pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'Sales.dbo.MARKETING'. (208)

我有

这给了我回溯错误:

cursor.execute("select RM_ID FROM Sales.dbo.MARKETING where VERSION = 'SomeVersion'")
我还有其他几行代码:

pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'Sales.dbo.MARKETING'. (208) (SQLExecDirectW)")
除了没有给我错误的列名之外,它们完全相同。我不确定我的错误是什么

注意事项:

  • 我已经检查了表中的列名,以确保它存在
  • 我注意到这个列是这个表的键。也许键需要不同的语法
  • 当我在SQL Server中执行查询时,它运行得很好

尝试将架构和表名用括号括起来:

cursor.execute("select RUNDATEEST FROM Sales.dbo.MARKETING where VERSION = 'SomeVersion'")

也许您需要以同样的方式围绕列名。

我不是python开发人员……您可以调试
游标。执行失败的
语句并检查sql连接字符串/属性吗?也许它没有将数据库连接到正确的数据库。它们使用的是包含数据库名称的三部分名称,因此数据库上下文应该无关紧要。但是,如果用户不同,他们可能没有相应的权限。@DMason I最近被授予仅访问SQL Server上的此数据库的权限,因此不太可能。字符串为:cnxn=pyodbc.connect('DRIVER={SQL Server};Server=ARACHNSQL1;DATABASE=SALES;Trusted_Connection=yes')@JNK我将与数据库管理员进行检查。确定,因此连接字符串似乎是在运行时设置的。我看到
受信任的\u连接-是
。这意味着您的应用程序正在尝试使用应用程序的windows凭据连接到MSSQL。应用程序是否在您的凭据下运行?(它可能在另一个用户下运行。可能正在进行模拟…)添加方括号为我解决了此错误。我正在使用C#中的ODBC通过一个ODBC连接对同一台服务器上的两个不同数据库运行SQL。
[Sales].[dbo].[MARKETING]