我试图从包含“-”破折号符号的表中选择所有数据,但是我得到了错误。
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 [表名]
,在Microsoft SQL Management Studio中使用复制粘贴可以正常工作,但是从Python控制台无法正常工作。
qStr = 'SELECT * FROM "' + tableName + '"
也是同样的情况。
为什么会发生这种情况,我该如何解决?
>>> checkIfEmpty("table-Name") SELECT * FROM table-Name Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> checkIfEmpty("table-Name") File "C:\Users\... cursor.execute(qStr) pyodbc.ProgrammingError: ('42000', "[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '-'. (102) (SQLExecDirectW)")
- Energizem[]
。请参见编辑。 - Rahul