Procedure or Function Has Too Many Arguments Specified
当遇到此错误消息时,表示在过程或函数中提供了过多的参数存储过程或函数的调用。识别错误的来源对于解决问题至关重要。
识别错误的来源
在给定的场景中,在调用存储的过程 [dbo].[M_UPDATES],它又调用另一个存储过程 [etl_M_Update_Promo]。经检查,很明显 [dbo].[M_UPDATES] 尝试使用两个参数调用 [etl_M_Update_Promo],而 [etl_M_Update_Promo] 的声明仅指定一个参数。
代码[dbo].[M_UPDATES]
EXEC etl.etl_M_Update_Promo @GenID, @Description
[etl_M_Update_Promo]的代码
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0 as
如您所见,[etl_M_Update_Promo] 被声明为只取@GenId参数,导致错误
解决方案
要解决此问题,需要修改 [etl_M_Update_Promo] 的声明以包含附加参数 @Description。通过这样做,该函数将能够容纳 [dbo].[M_UPDATES].
更新的 [etl_M_Update_Promo] 代码
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS更新声明后,错误应该得到解决,使程序能够按预期运行。
以上是为什么我的存储过程出现'参数过多”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!