在SQL Server Management Studio中我可以運行此查詢:蟒蛇pyodbc錯誤與查詢,對MS SQLSERVER正常工作
select a.foo, colX, colY, colZ from tblA a
join tblB b
on (a.foo = b.foo)
通過python腳本pyodbc運行相同的查詢,我得到:
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][
SQL Server]"b" is not a recognized table hints option. If it is intended as a p
arameter to a table-valued function or to the CHANGETABLE function, ensure that
your database compatibility mode is set to 90. (321) (SQLExecDirectW)')
任何人都可以解釋爲什麼這個查詢直接對SQL Server工作,但似乎有一個問題與表別名時使用pyodbc?
這是我已經能夠找出:
- SQL Server上的Microsoft Windows NT上運行6.1(7601)
- SQL Server版本是11.0.5532.0
- pyodbc庫:pyodbc-3.0.7.win32-py2.7
1)我不知道如何產生一個可重複的例子,我不是DBA;我可以通過SQL獲取。 2)我不能在這個數據庫上創建表。但是:我可以使用RODBC r包和對同一個db的sqlQuery()調用完成3個連接/ 3個別名的完整查詢。因此,罪魁禍首是pyodbc,所以我會嘗試找到一個python開發人員來嘗試複製並回傳結果。
沒有*語法錯誤的T-SQL發佈。請編輯用於產生錯誤的Python代碼的問題。 – Bryan
我無法重現您的問題。請[編輯]您的問題,將您的代碼顯示爲@BryanEargle建議的內容,並提及所涉及的各種組件(Python,pyodbc,SQL Server)的版本。 –