Поделиться через


Запросы параметров (визуальные инструменты для баз данных)

применимо к:SQL Server

В некоторых случаях требуется создать запрос, который можно использовать несколько раз, но с разными значениями каждый раз. Например, можно часто запускать запрос, чтобы найти все title_ids, написанные одним автором. Вы можете выполнять один и тот же запрос для каждого запроса, за исключением того, что идентификатор или имя автора будет отличаться каждый раз.

Чтобы создать запрос, который может иметь разные значения в разное время, используйте параметры в запросе. Параметр — это заполнитель для значения, предоставленного при выполнении запроса. Инструкция SQL с параметром может выглядеть следующим образом: "?" представляет параметр для идентификатора автора:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Когда следует использовать параметры

Параметры можно использовать в качестве заполнителей для литеральных значений — для текстовых или числовых значений. Чаще всего параметры используются в качестве заполнителей в условиях поиска отдельных строк или групп (то есть в WHERE инструкциях SQL или HAVING предложениях).

Параметры можно использовать в качестве заполнителей в выражениях. Например, вы можете вычислить скидки по ценам, указав другое значение скидки при каждом запуске запроса. Для этого можно указать следующее выражение:

(price * ?)

Указание неименованных и именованных параметров

Можно указать два типа параметров: неназванные и именованные. Неименованный параметр — это вопросительный знак (?), который вы помещаете в любой точке запроса, который требуется запросить или заменить литеральным значением. Например, если вы используете неименованный параметр для поиска идентификатора автора в таблице titleauthor, результирующая инструкция в области SQL может выглядеть следующим образом:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

При выполнении запроса в средствах конструктора запросов и представлений диалоговое окно "Параметры запроса" отображается с "?" в качестве имени параметра.

Кроме того, можно назначить имя параметру. Именованные параметры особенно полезны при наличии нескольких параметров в запросе. Например, если вы используете именованные параметры для поиска имени и фамилии автора в таблице authors, результирующий запрос в области SQL может выглядеть следующим образом:

SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
      au_lname = %last name%

Совет

Перед созданием именованного запроса параметров необходимо определить префикс и суффикс.

При запуске запроса в конструкторе запросов и представлений откроется диалоговое окно "Параметры запроса" со списком именованных параметров.