Хранимая процедура может возвращать целочисленный тип только в операторе возврата и может иметь любое количество выходных параметров. См. для ссылок, поддерживающих это.
Простейший пример хранимой процедуры
Возвращает целочисленное значение из SP
CREATE procedure [sys].[sp_name]
(
@var1 bit = 0,
@publisher smallint
)
AS
BEGIN
IF @var1<> 0
RETURN (@publisher )
END
Использование параметра Out
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerID INT OUTPUT
AS
BEGIN
SELECT @managerID = ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END
Вы можете использовать транзакции, обработку исключений (попробуйте Catch), запросы DDL и DML, вызывая другую хранимую процедуру в рамках одной хранимой процедуры и многие другие операции.
Пожалуйста, прокомментируйте дополнительные функции, поддерживаемые в хранимой процедуре