我一直在尝试从名称依赖于我给它的变量的表创建(或选择)时遇到一些问题。
以下是我尝试过的代码无效的示例,其中'Hey'=我试图通过变量'j'选择的表的名称(存在于数据库中)。< / p>
j = 'Hey'
rows = conn.execute("SELECT * from ?", (j,)).fetchall()
print(rows)
有人有解决方案吗?提前谢谢。
答案 0 :(得分:0)
?
用于绑定参数,不幸的是,表名不会以这种方式工作。但是,这会,但要注意SQL注入:
j = 'Hey'
rows = conn.execute("SELECT * from {table_name}".format(table_name=j)).fetchall()
print(rows)
不幸的是,您无法将其绑定到T-SQL变量名称,因为您只是将问题下游传递给T-SQL EXEC
命令,如下所述:{ {3}}请注意,这是由于SQL Server和T-SQL的设计,而不是pyodbc
。