Шаг 20 - Подробнее о параметрах в процедурах

Мы с Вами поговорим подробнее о передаче параметров. Итак, процедура может быть без параметров, процедура может возвращать результат. Смотрим процедуру без параметров:

CREATE PROCEDURE Selects
AS
SELECT * FROM PIPLE

Общая модель такова:

CREATE PROCEDURE имя
Параметры
AS
Команды

Для передачи в процедуру параметров их необходимо описать:

CREATE PROCEDURE Selects
@name char(50)
AS
SELECT * FROM PIPLE

В процедуру передается параметр с именем name и типа char(50). Если параметров много, тогда их можно указывать через запятую.

CREATE PROCEDURE Selects
@name char(50),
@ID int
AS
SELECT * FROM PIPLE

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

CREATE PROCEDURE Selects
@name char(50),
@ID int,
@FACTORY char(50)="VG"
AS
PRINT @FACTORY

Можно создавать параметры и окончанием OUTPUT. Соответственно после вызова процедуры вы сможете воспользоваться этим значением. Процедура, которая возвращает значение:

CREATE PROCEDURE Updates 
@ids INT OUTPUT
AS
SELECT @ids=5

А теперь, которая принимает:

CREATE PROCEDURE Selects 
@name char(50), 
@ID int,
@FACTORY char(50)="VG" OUTPUT
AS
DECLARE @ids int
EXECUTE Updates @ids OUTPUT
IF  @ids = 5 
BEGIN
  PRINT "OK"
END
 ELSE 
BEGIN
 PRINT "None"
END

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.09.2001