2013-06-24 3 views
-3

Мы решили сохранить sql параметризованный запрос текста в XML-файлах. Для этого проекта мы используем SQLite с кодом C# (http://system.data.sqlite.org/), но пропустите некоторое базовое информационное сообщение о том, насколько гибки параметризованные запросы, особенно в стандартном SQL, и для этого механизма БД тоже. Неоспоримые переменные являются параметризуемыми (значение для A = ...), что имена таблиц нет, но мы не полностью уверены в именах столбцов (выберите xxx из mytable). Спасибо, что помогли мне найти.Ищем запрос параметризованных запросов sql

ответ

0

Почти во всех машинах SQL и SQLite не является исключением, имена таблиц и столбцов не могут быть параметризованы.

Это связано с тем, что запрограммированные запросы в большинстве случаев предварительно скомпилированы, и для того, чтобы прекомпиляция работала, SQL-движок должен создавать планы запросов - какие таблицы следует использовать, используя какие столбцы и какие индексы использовать. Если на данном этапе имена таблиц и столбцов были неизвестны, предварительная компиляция невозможна. Вот почему разрешено параметризовать только значения для ограничений (например, в WHERE) (используя синтаксис ?, $1 или :name, в зависимости от поддержки SQL-сервера).