2017-10-13 50 views
1

我一直有一些问题试图从表中创建(或选择)名称取决于我给它的变量。Pyodbc:如何从具有字符串/变量名称的表中选择

下面是一个我尝试过的代码没有工作的例子,其中'Hey'=我试图通过变量'j'选择的表格名称(它存在于数据库中)。

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

有没有人有这方面的解决方案?提前致谢。

回答

0

?用于绑定参数,不幸的是,表名不会以这种方式工作。然而,这种意志,但要小心的SQL注入:

j = 'Hey' 
rows = conn.execute("SELECT * from {table_name}".format(table_name=j)).fetchall() 
print(rows) 

不幸的是,你不能将其绑定到T-SQL变量名或者,你只是传递了问题,下游的T-SQL EXEC命令,如下所示:Table name as variable另请注意,这是由于SQL Server和T-SQL的设计,而不是pyodbc

祝你好运!

相关问题