Рассмотрим следующую хранимую процедуру:
ALTER PROCEDURE Administration.SetAndRetrieveNewPurchaseOrderNumber
@PurchaseOrderNumber INT OUTPUT
AS
BEGIN
SET NOCOUNT ON
UPDATE Administration.KeyNumbers
SET PurchaseOrderNumber += 1
WHERE RowId = 1
SET @PurchaseOrderNumber = (SELECT kn.PurchaseOrderNumber
FROM Administration.KeyNumbers kn
WHERE kn.RowId = 1)
END
GO
Я могу легко использовать это из своего приложения, просто выполнив процедуру и передав по ссылке соответствующий параметр с именем.
Теперь я хочу выполнить процедуру, указанную выше, в другой хранимой процедуре. Я попробовал следующее, но оно не работает (с или без символа @ в части параметра вызываемой хранимой процедуры;
DECLARE @PurchaseOrderNumber INT
EXEC Administration.SetAndRetrieveNewPurchaseOrderNumber(@PurchaseOrderNumber)
Как правильно сделать это, или в действительности должна существовать отдельная процедура для использования в подобных обстоятельствах, которая дает только скалярный результат?