Python 2.7 MSSQL 命令附近语法错误
Python 2.7 MSSQL Incorrect Syntax near Order
我到处搜索以寻找解决此问题的方法,当我将 Order by 添加到语句时收到错误消息:
(156, "Incorrect syntax near the keyword 'Order'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
我的 .py 文件中的代码是:
db = pymssql.connect(server='DESKTOP-3G1FB9B\SQLEXPRESS', user='sa', password='', database='Osmium')
cursor = db.cursor()
sql = "(SELECT TOP 1 * FROM delayed Order by ID ASC)"
cursor.execute(sql)
如果我删除 'Order by ID ASC' 它执行正常,但我需要订购结果并且无法找到解决方案。将查询输入 SQL Server 2014 Management Studio 并添加 "Osmium.dbo.delayed" 它 returns 正确的结果,我只需要它在 Python (2.7) 脚本
SELECT TOP 1 * FROM Osmium.dbo.delayed Order by ID ASC
提交此作答,并说明原因:
将您的 sql
变量声明更改为:
sql = "SELECT TOP 1 * FROM [delayed] ORDER BY [ID] ASC"
ORDER BY 是 T-SQL 中的子句,因此不需要括号来建立任何运算顺序。方括号可用于包围 SQL 服务器中的某些对象,以允许使用保留字(例如,如果您有一个名为 [file] 的列)或某些字符,例如连字符(名为[你的数据库]).
我到处搜索以寻找解决此问题的方法,当我将 Order by 添加到语句时收到错误消息:
(156, "Incorrect syntax near the keyword 'Order'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
我的 .py 文件中的代码是:
db = pymssql.connect(server='DESKTOP-3G1FB9B\SQLEXPRESS', user='sa', password='', database='Osmium')
cursor = db.cursor()
sql = "(SELECT TOP 1 * FROM delayed Order by ID ASC)"
cursor.execute(sql)
如果我删除 'Order by ID ASC' 它执行正常,但我需要订购结果并且无法找到解决方案。将查询输入 SQL Server 2014 Management Studio 并添加 "Osmium.dbo.delayed" 它 returns 正确的结果,我只需要它在 Python (2.7) 脚本
SELECT TOP 1 * FROM Osmium.dbo.delayed Order by ID ASC
提交此作答,并说明原因:
将您的 sql
变量声明更改为:
sql = "SELECT TOP 1 * FROM [delayed] ORDER BY [ID] ASC"
ORDER BY 是 T-SQL 中的子句,因此不需要括号来建立任何运算顺序。方括号可用于包围 SQL 服务器中的某些对象,以允许使用保留字(例如,如果您有一个名为 [file] 的列)或某些字符,例如连字符(名为[你的数据库]).