我在SQL Server 2008中有一个存储过程。在这个SP中,我需要调用另一个并传入两个参数,如下所示: 这将在父SP
的末尾执行EXEC [Testing].[InsertNewValues] @UserId, @RequestedById
此SP看起来像这样:
ALTER PROCEDURE [Testing].[InsertNewValues]
@UserId int,
@RequestedById int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Do something with two parameters
END
然而,当我运行我的项目时,我收到错误:
其他信息:程序或功能'InsertNewValues' 期望参数'@RequestedById',这是未提供的。
我试过
EXEC [Testing].[InsertNewValues](@UserId, @RequestedById)
EXEC [Testing].[InsertNewValues] @UserId @RequestedById
EXEC [Testing].[InsertNewValues] (@UserId, @RequestedById)
但没有运气,有人可以告诉我这里我做错了什么吗?
答案 0 :(得分:1)
您可以从一个SP调用任意数量的SP(您可以将其扩展到其他SP - 嵌套)。您也可以通过SP呼叫功能。但是从你的代码,调用行和错误..所有表明你没有正确调用你的SP,你显然缺少参数分隔符。这可能是一个错字。
您的参数之间错过,
。
更改EXEC [Testing].[InsertNewValues] @UserId @RequestedById
到
EXEC [Testing].[InsertNewValues] @UserId, @RequestedById
答案 1 :(得分:0)
这
EXEC [Testing].[InsertNewValues](@UserId, @RequestedById)
EXEC [Testing].[InsertNewValues] @UserId @RequestedById
EXEC [Testing].[InsertNewValues] (@UserId, @RequestedById)
要
EXEC [Testing].[InsertNewValues] @UserId, @RequestedById
EXEC [Testing].[InsertNewValues] @UserId, @RequestedById -- missing comma here
EXEC [Testing].[InsertNewValues] @UserId, @RequestedById
请尝试,我想我可能不需要知道为什么它的3次......我的假设是你可能会用重复的方式测试你的验证。