sql server和pyodbc的问题

hfwmuf9z  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(394)

我在这句话里有个错误:

cursor.execute("SELECT * FROM dbo.User")

错误:
pyodbc.programmingerror:('42000',“[42000][microsoft][odbc driver 11 for sql server][sql server]关键字“user”附近的语法不正确(156)(sqlexecdirectw)“)
代码如下。我假设连接正常,因为除非执行查询,否则什么都不会发生?我做错什么了吗?

SERVER = 'LAPTOP-1E7UL24T\SQLEXPRESS02'
DATABASE = 'PT'
DRIVER='{ODBC Driver 17 for SQL Server}'
DATABASE_CONNECTION=f'Driver={DRIVER};SERVER={SERVER};Database={DATABASE};Trusted_Connection=yes;'
print(DATABASE_CONNECTION)
cnxn=pyodbc.connect(DATABASE_CONNECTION)

cursor=cnxn.cursor()
cursor.execute("SELECT * FROM dbo.User")
h7appiyu

h7appiyu1#

User 是保留字,需要转义,通常使用方括号。

SELECT * FROM dbo.[User]

但双引号也能起作用:

SELECT * FROM dbo."User"

不过,如果你避免使用保留字,你的生活(以及任何跟随你的开发人员)会轻松很多。

相关问题