我有一個要添加到 SQL Server 資料庫中的列串列。
colList = ['title', 'docDate', 'coleadAgency',
'usBusinessName', 'description',
'acquCountry', 'ubo1Value', 'naicsCode',
'mitigation']
我有一個名為 TAbby 的表,想將這些列添加到其中。我試過
for col in colList:
cur.execute(""" ALTER TABLE TAbby ADD (?) NVARCHAR(255) """, col)
cur.commit()
但我得到了錯誤:
ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]'('.(102) (SQLExecDirectW); [42000] [Microsoft][ODBC Driver 17 附近的語法不正確對于 SQL Server][SQL Server]無法準備陳述句。(8180)")
uj5u.com熱心網友回復:
您不能引數化諸如表名或列名之類的識別符號。引數是為文字值保留的。因此,在 SQL 陳述句中動態字串格式化列名。(列名周圍的方括號用于轉義特殊字符、空格或保留字)。
for col in colList:
cur.execute(f"ALTER TABLE TAbby ADD [{col}] NVARCHAR(255)")
cur.commit()
實際上,TSQL 在ADD子句中支持多個逗號分隔的列。因此,請考慮使用串列理解進行構建:
new_cols = ", ".join([f"[{col}] NVARCHAR(255)" for col in colList])
cur.execute(f"ALTER TABLE TAbby ADD [{new_cols}]")
cur.commit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/381080.html
標籤:Python sql-server 查询语句
