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


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

Область применения: SQL Server

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

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

SELECT title_id  
FROM titleauthor  
WHERE (au_id = ?)  

Где можно использовать параметры

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

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

(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%  

Совет

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

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

См. также

Запрос с параметрами (визуальные инструменты для баз данных)
Поддерживаемые типы запросов (визуальные инструменты для баз данных)
Разделы по конструированию запросов и представлений (визуальные инструменты для баз данных)