【发布时间】:2018-05-09 11:27:01
【问题描述】:
考虑以下存储过程:
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)
这样做的正确方法是什么,或者实际上是否应该有一个单独的过程用于在这种情况下只产生一个标量结果?
【问题讨论】:
标签: sql-server stored-procedures sql-server-2016