Pyodbc:如何从具有字符串/变量名称的表中进行选择

时间:2017-10-13 17:25:33

标签: python-3.x pyodbc

我一直在尝试从名称依赖于我给它的变量的表创建(或选择)时遇到一些问题。

以下是我尝试过的代码无效的示例,其中'Hey'=我试图通过变量'j'选择的表的名称(存在于数据库中)。< / p>

j = 'Hey'
rows = conn.execute("SELECT * from ?", (j,)).fetchall()
print(rows)

有人有解决方案吗?提前谢谢。

1 个答案:

答案 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

祝你好运!