у вас определено несколько версий
/* Присвоим переменной @Ntek результаты выполнения хранимой процедуры
COUNT_EX */
ЕХЕС @Ntek = COUNT_EX @ISBN
Если у вас определено несколько версий хранимой процедуры, то при вызове вы можете указать номер конкретной версии для исполнения. Tак, например, в версии 2 процедуры COUNT_EX последний оператор исполнения этой процедуры имеет вид:
ЕХЕС @Ntek = COUNT_EX:2 @ISBN
Однако если в процедуре определены значения входных параметров по умолчанию, то при запуске процедуры могут быть указаны значения не всех параметров. В этом случае оператор вызова процедуры может быть записан в следующем виде:
ЕХЕС <имя процедуры> <имя_параметра1>=<значение параметра1>...
<имя_napaмeтpaN>=<значение параметрамN>..
Например, создадим процедуру, которая считает количество книг, изданных конкретным издательством в конкретном году. При создании процедуры зададим для года издания по умолчанию значение текущего года.
CREATE PROCEDURE COUNT_BOOKS (@YEARIZD Int = Year(GetDate()),
@PUBLICH varchar(20))
/* процедура подсчета количества книг конкретного издательства, изданных в конкретом году
параметры:
@YEARIZD Int год издания
(PPUBLICH название издательства */ AS
DECLARE @TEK_Count int Select
@TEK count = Select COUNT(ISBN)
From BOOKS
Where YFARIZD = @YEARIZD AND PUBLICH =@PUBLICH
/* одновременно с исполнением оператора Select мы присваиваем результаты его работы определенной ранее переменной @TEK_Count */
/* при формировании результата работы нашей процедуры мы должны учесть, что в нашей библиотеке, возможно, нет ни одной книги некоторого издательства для заданного года. Результат выполнения запроса SELECT в этом случае будет иметь неопределенное значение, но анализировать все-таки лучше числовые значения. Поэтому в качестве возвращаемого значения мы используем результаты работы специальной встроенной функции Transact SQL COALESCE (nl.n2.....nm), которая возвращает первое конкретное, то есть не равное NULL, значение из списка значений nl.n2....,nm. */