pyodbc '-' 附近的语法不正确。 (102)
pyodbc Incorrect syntax near '-'. (102)
我正在尝试 select 来自 table 的所有包含“-”破折号的数据,但出现错误
cursor.execute(qStr)
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '-'. (102) (SQLExecDirectW)")
这是代码:
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.2.100\name;DATABASE=base;UID=user;PWD=pass')
try:
cursor = cnxn.cursor()
except e:
if e.__class__ == pyodbc.ProgrammingError:
conn == reinit()
cursor = conn.cursor()
def checkIfEmpty (tableName):
qStr = 'SELECT * FROM [' + tableName + ']'
print(qStr)
cursor.execute(qStr)
asd=cursor.fetchone()
if asd==None:
return True
else:
return False
它打印出正确的 SQL 语句 SELECT * FROM [Table-Name]
并且在 Microsoft SQL Management Studio 中这个查询使用复制粘贴工作得很好,但它不会从 python 控制台工作
相同的是:qStr = 'SELECT * FROM "' + tableName + '"
为什么会这样,我该如何解决?
尝试在有破折号的地方使用方括号。
qStr = "SELECT * FROM [{}]".format(tableName)
现在你也可以这样写:
qStr = f"SELECT * FROM [{tableName}]"
我正在尝试 select 来自 table 的所有包含“-”破折号的数据,但出现错误
cursor.execute(qStr)
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '-'. (102) (SQLExecDirectW)")
这是代码:
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.2.100\name;DATABASE=base;UID=user;PWD=pass')
try:
cursor = cnxn.cursor()
except e:
if e.__class__ == pyodbc.ProgrammingError:
conn == reinit()
cursor = conn.cursor()
def checkIfEmpty (tableName):
qStr = 'SELECT * FROM [' + tableName + ']'
print(qStr)
cursor.execute(qStr)
asd=cursor.fetchone()
if asd==None:
return True
else:
return False
它打印出正确的 SQL 语句 SELECT * FROM [Table-Name]
并且在 Microsoft SQL Management Studio 中这个查询使用复制粘贴工作得很好,但它不会从 python 控制台工作
相同的是:qStr = 'SELECT * FROM "' + tableName + '"
为什么会这样,我该如何解决?
尝试在有破折号的地方使用方括号。
qStr = "SELECT * FROM [{}]".format(tableName)
现在你也可以这样写:
qStr = f"SELECT * FROM [{tableName}]"