Ответы:
Ad hoc на латыни означает «для этой цели». Вы можете назвать это запросом «на лету» или «просто так». Это тот тип SQL-запроса, который вы просто набираете, где вам нужно
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
... это совершенно другой запрос каждый раз, когда выполняется эта строка кода, в зависимости от значения myId
. Противоположностью специального запроса является предопределенный запрос, такой как хранимая процедура, где вы создали один запрос для всей обобщенной цели выбора, скажем, из этой таблицы, и передали идентификатор в качестве переменной.
Ad-Hoc Query - это запрос, который нельзя определить до момента его выдачи. Он создан для того, чтобы получать информацию при необходимости, и состоит из динамически сконструированного SQL-кода, который обычно создается с помощью резидентных инструментов запросов.
Проверьте: http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
Также хочу добавить, что специальный запрос уязвим для атак SQL-инъекций. Мы должны стараться избегать его использования и использовать вместо этого параметризованные SQL ( например, PreparedStatement в Java ).
Ad-Hoc Query - это запрос, который нельзя определить до момента его выдачи. Он создан для того, чтобы получать информацию при необходимости, и состоит из динамически сконструированного SQL-кода, который обычно создается с помощью резидентных инструментов запросов. Специальный запрос не находится на компьютере или в менеджере баз данных, а создается динамически в зависимости от потребностей пользователя данных.
В SQL специальный запрос - это слабо типизированная команда / запрос, значение которого зависит от некоторой переменной. Каждый раз, когда выполняется команда, результат отличается в зависимости от значения переменной. Это не может быть предопределено и обычно попадает под SQL-запрос динамического программирования. Специальный запрос недолговечен и создается во время выполнения.
Ad-Hoc запрос является один создан , чтобы обеспечить определенный набор записей из любого или нескольких слиты таблиц , доступных на сервере БД. Эти запросы обычно служат одноразовому назначению, и их необязательно включать в какую-либо хранимую процедуру для повторного запуска в будущем.
Специальный сценарий : вы получаете запрос для определенного подмножества данных с уникальным набором переменных. Если нет заранее написанного запроса, который может обеспечить необходимые результаты, вы должны написать специальный запрос, чтобы сгенерировать результаты набора записей.
Помимо одноразового использования Ad-hoc-запрос - это хранимые процедуры ; т.е. запросы, которые хранятся в инструменте интерфейса БД. Эти хранимые процедуры могут затем выполняться последовательно в модуле или макросе для выполнения предопределенной задачи по требованию, по расписанию или по другому событию.
Сценарий хранимой процедуры : каждый месяц вам нужно генерировать отчет из одного и того же набора таблиц и с одинаковыми переменными (эти переменные могут быть конкретными предопределенными значениями, вычисленными значениями, такими как «конец текущего месяца» или входные значения пользователя). Вы создали бы процедуру как специальный запрос в первый раз. После проверки результатов для обеспечения точности вы можете выбрать развертывание этого запроса. Затем вы должны сохранить запрос или серию запросов в модуле или макросе для повторного запуска при необходимости.
Специальные запросы - это те, которые еще не определены, которые не нужны на регулярной основе, поэтому они не включены в типовой набор отчетов или запросов.
Специальный запрос - это тип определения компьютера. Это означает, что этот запрос специально разработан для получения любой информации, когда она нужна только. Предопределенные. см. этот https://www.youtube.com/watch?v=0c8JEKmVXhU
В Sql Server «Ad Hoc Query» также используется для Ad Hoc Distributed Queries. Это специальные запросы на другом сервере через OpenRowset или OpenDatasource. Специальные распределенные запросы разрешены только после настройки. Это опция конфигурации сервера.
SQL injection attacks
... Вы должны использовать параметр.