mssql sqlserver 存储过程出现“为过程或函数指定了过多的参数”错误信息的原因分析


摘要:
下文讲述sqlserver中,存储过程中的sql脚本出现”为过程或函数指定了过多的参数”错误提示信息的处理方法,如下所示:
实验环境:sql server 2008 R2

为过程或函数指定了过多的参数的原因分析:

原因1:存储过程所需的参数未指定

在调用存储过程,没有为存储过程中必填参数进行赋值,导致运行存储过程时,出现以上的错误提示信息,
解决方法:
为必须存储过程或函数指定相应的参数。

原因2: 存储过程同系统存储过程出现同步,执行的时候会调用系统存储过程

系统自带的存储过程默认以sp开头,
当我们执行一个存储过程时,首先会从master数据开始检查并执行,如果用户自定义的存储过程和系统存储过程名称相同,那么每次执行的时候,都是执行系统存储过程,
用户自定义的存储过程永远得不到执行。
解决方法:
在用户自定义存储过程时,严格使用自己的一套存储过程编码规则,避免出现自定义存储过程和系统存储过程出现同名的情况发生。

原因3:数据库调用错误

执行存储过程所在的数据库发生错误,
例:
执行的存储过程的数据库位于旧版本的系统中
解决方法:
核查执行存储过程所在的数据库的参数和sql脚本中调用的参数个数是否一致