0

我理解“AD HOC”查询的含义,如果正确的话,它会在运行时动态生成查询

IF (someCondition)
strSQL = "SELECT * FROM authors WHERE " & whereClause
ELSE
strSQL = "SELECT * FROM authors WHERE " & whereClause & orderbyClause

在使用 DataWarehouse 等时是否缺少一些额外的主要概念?或者任何其他有用的链接输入都会有所帮助。

4

1 回答 1

1

即席查询引擎是一种支持完整的 SQL 语言以访问存储在数据库中的数据的引擎。无论是直接提供 SQL 还是以字符串形式提供 SQL(如您的示例中所示),都没有区别。

通常,它指的是决策支持系统上的复杂查询。在与大量用户交互或具有稳定的数据修改流的系统上,即席查询不受欢迎。

从技术上讲,动态 SQL 可能是即席查询,因为在执行之前需要重新编译字符串。但是,动态 SQL 通常会生成简单的查询,而参数化查询会更好。例如,您的示例是一个经典示例,说明由于 SQL 注入攻击而不能做什么。

于 2013-01-18T14:50:20.767 回答