Рекомендации для того, чтобы использовать входные параметры
Чтобы определить хранимую процедуру, которая принимает входные параметры, Вы объявляете один или более переменных как параметры в операторе CREATE PROCEDURE. Рассмотрите следующие рекомендации по использованию входных параметров:
■ Обеспечьте значениями по умолчанию соответствующие параметры. Если значение по умолчанию определено, пользователь может выполнить хранимую процедуру, не определяя значение для этого параметра.
■ Проверьте правильность всех входящих значений параметра в начале хранимой процедуры для раннего отлавливания отсутствующих и недопустимых значений. Можно включать проверку параметров на null.
Следующий пример добавляет параметр @MinimumLengthдля хранимой процедурыLongLeadProducts. Это позволяет выражению WHERE быть более гибким, чем ранее показанный, позволяя вызывающему приложению определить, какое время выполнения заказа считается допустимым.
Хранимая процедура определяет заданное по умолчанию значение 1параметра так, чтобы вызывающее приложение могло выполнить процедуру, не определяя параметр. Если значение передается для @MinimumLength, то оно проверяется для гарантии того, что значение является допустимым для оператора SELECT. Если значение - меньше чем нуль, то возбуждается ошибка, и хранимая процедура немедленно завершается без выполнения оператора SELECT.
Вы можете установить значение параметра, передавая значение хранимой процедуре через имя параметра или позицию. Вы не должны смешивать различные форматы, когда Вы указываете значения параметров.
Определяя параметр в операторе EXECUTE в формате @parameter = значение называется передача по имени параметра. Когда Вы передаете значения по имени параметра, то они могут быть определены в любом порядке, и Вы можете опустить параметры, которые позволяют null значения или те, у которых есть значение по умолчанию.
Следующий пример вызывает хранимую процедуру LongLeadProductsи определяет название параметра.
EXEC Production.LongLeadProducts @MinimumLength=4
Передача только значений (без имен параметров, для которых они передавались), называется передача значений по позиции. Когда Вы определяете только значения параметров, то они должны быть перечислены в порядке, в котором они определены в операторе CREATE PROCEDURE. Когда Вы передаете значения по позиции, Вы можете опустить параметры, где существуют значения по умолчанию, но Вы не можете прервать последовательность. Например, если у хранимой процедуры есть пять параметров, Вы можете опустить четвертый и пятый параметры, но Вы не можете опустить четвертый параметр и определить пятый.
Следующий пример вызывает хранимую процедуру LongLeadProductsи определяет параметр по позиции.