在存儲過程中共有54個參數,其中前面是38個輸入參數,後面16個輸出參數,運行沒問題。後來需加多一個輸入參數@Motorization,運行時提示“Formal parameter '@Motorization' was defined as OUTPUT but the actual parameter not declared OUTPUT “錯誤。我在被調用的存儲過程中定義的@Motorization並沒有加output,為何老提示這種錯誤?更奇怪的是,我把原來的38個輸入參數中刪掉一個不用,就沒問題,難道sql2000中對輸入參數的數量有限制?就算有也不會這麼少吧?我現在只好在調用跟被調用的存儲過程中參數@Motorization都加上output,不知以上問題原因何在,請各位大俠指教!注:我每次加、減參數都會在兩邊存儲過程進行,不存在兩邊參數數量或類型不對應的問題。
alter proc procname
....
as
以上纯属个人猜测,因为没有2000的系统。
create proc test123
@a int output
as
set @a=3
declare @b intexec test123 @b outputselect @b
/*
3
*/