2013-06-24 35 views
-3

我们已经决定将sql参数化查询文本存储在xml文件中。对于这个项目,我们使用带有C#代码的SQLite(http://system.data.sqlite.org/),但错过了一些有关参数化查询灵活性的基本信息参考,尤其是首先在标准SQL中以及此数据库引擎。这是无可争议的变量是可参数化的(对于A = ...的值),表名不是,但我们不完全确定列名(从mytable中选择xxx)。 谢谢你帮助我找到。寻找sql参数化查询参考

回答

0

在几乎所有的SQL引擎中,SQLite也不例外,表名和列名不能被参数化。

这是因为大部分时间参数化查询都是预编译的,为了预编译正常工作,SQL引擎需要创建查询计划 - 哪些表要使用哪些列进行连接,以及要使用哪些索引。如果在这个阶段表和列的名字是未知的,预编译将不可能。这就是为什么只允许约束值(如WHERE)参数化(使用?,$1:name语法,具体取决于SQL引擎支持)。