簡體   English   中英

pyodbc '-' 附近的語法不正確。 (102)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM