Мы с Вами поговорим подробнее о передаче параметров. Итак, процедура может быть без параметров, процедура может возвращать результат. Смотрим процедуру без параметров:
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