-3

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

4

1 回答 1

0

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

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

于 2013-06-24T08:33:20.133 回答