Python 2.7 MSSQL语法附近的语法不正确

时间:2016-04-30 11:53:35

标签: python sql-server python-2.7 pymssql

我已经搜索了高位和低位以寻找此问题的解决方案,我在将语句添加到语句时收到错误:

  

(156,“关键字'Order'.DB-Lib错误消息20018附近的语法错误,严重性15:\ n一般SQL Server错误:检查来自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)

如果我删除'按ID ASC排序'它执行正常,但我需要订购结果而无法找到解决方案。在SQL Server 2014 Management Studio中输入查询并添加“Osmium.dbo.delayed”它会返回正确的结果,我只需要它在Python(2.7)脚本中工作

SELECT TOP 1 * FROM Osmium.dbo.delayed Order by ID ASC

1 个答案:

答案 0 :(得分:1)

提交此答案,并解释原因:

sql变量声明更改为:

sql = "SELECT TOP 1 * FROM [delayed] ORDER BY [ID] ASC"

ORDER BY 是T-SQL中的一个子句,因此不需要括号来建立任何操作顺序。方括号可用于包围SQL Server中的某些对象以允许使用保留字(例如,如果您有一个名为[file]的列)或某些字符(如连字符)(名为[your-db的数据库) ])。