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


Указание имени аргумента

Каждый аргумент хранимой процедуры должен иметь уникальное имя. Имена параметров хранимых процедур, как и стандартные переменные Transact-SQL, должны начинаться с символа «@» и соответствовать правилам построения идентификаторов объектов. Имя аргумента можно использовать в хранимых процедурах, чтобы получить или изменить значение аргумента.

Значения в хранимую процедуру можно передать двумя способами: либо явным именованием аргументов с присвоением им значений, либо непосредственным размещением значений аргументов, содержащихся в инструкции CREATE PROCEDURE без указания их имен. Например, если в хранимой процедуре my_proc ожидается три аргумента с именами @first, @second и @third, то передаваемые в хранимую процедуру значения могут быть присвоены именам аргументов таким образом:

EXECUTE my_proc @second = 2, @first = 1, @third = 3;

Или можно разместить значения аргументов, не указывая имена аргументов:

EXECUTE my_proc 1, 2, 3;

Если в выполняемой хранимой процедуре указываются имена аргументов, то аргументы могут быть перечислены в любом порядке. Если имена аргументов опущены, то порядок аргументов (слева направо) должен совпадать с порядком аргументов при определении хранимой процедуры. Кроме того, необходимо передавать все аргументы, предшествующие данному, даже если они являются необязательными и принимают значения по умолчанию. Например, если в хранимой процедуре my_proc все аргументы необязательные, то процедура my_proc может быть выполнена, если указаны значения только для первого и второго аргумента, но неверно указывать значения только для второго и третьего аргумента. Это необходимо, потому что иначе Microsoft SQL Server не может идентифицировать указанные аргументы.