![](/img/trans.png)
[英]pyodbc.ProgrammingError: ('42000', "[42000] [FreeTDS][SQL Server]Incorrect syntax near ';'.\n (102) (SQLExecDirectW)")
[英]pyodbc Incorrect syntax near '-'. (102)
我試圖從包含“-”破折號的表中選擇所有數據,但出現錯誤
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}]"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.