CREATE PROCEDURE  up_add_bbs_user
(@user_name varchar(20),@user_pass varchar(50),@user_question varchar(100),@user_answer varchar(100),@user_mail varchar(200),
@userbase_sex varchar(10),@userbase_birthday datetime,@userbase_locus varchar(200),@userbase_qq varchar(15),
@userbase_signature varchar(1000),@user_id int out)
ASINSERT INTO [bbs_users](user_name,user_pass,user_question,user_answer,user_mail)
VALUES(@user_name,@user_pass,@user_question,@user_answer,@user_mail)
SELECT @user_id = Max ([user_id]) FROM bbs_userINSERT INTO bbs_userbase (userbase_userid)VALUES(@user_id)
INSERT INTO bbs_userstate (userstate_userid)VALUES(@user_id)
INSERT INTO bbs_roleuser (roleuser_userid)VALUES(@user_id)
EXEC up_change_userbase @user_id,@userbase_sex,@userbase_birthday,@userbase_locus,@userbase_qq,@userbase_signature
UPDATE bbs_siteinfo SET siteinfo_usercount =  siteinfo_usercount +1 ,siteinfo_newuserId =@user_id,siteinfo_newusername=@user_name 
WHERE siteinfo_id = 1
GO
execute up_add_bbs_user @user_name="123",@user_pass="1",@user_question="喜欢谁",@user_answer="自己",@user_mail="[email protected]",
@userbase_sex="boy",@userbase_birthday="1986-6-6",@userbase_locus="浙江",@userbase_qq="174526675",@userbase_signature="总会成功"
服务器: 消息 201,级别 16,状态 4,过程 up_add_bbs_user,行 0
过程 'up_add_bbs_user' 需要参数 '@user_id',但未提供该参数。为什么会没有提供该参数呢
请大家帮帮忙啊 小弟在这里谢过了……

解决方案 »

  1.   

    要加入@user_id参数
    应该是这样的,不确定啊,呵呵。
    delcare @id varchar2
    exec ....@user_id = @id output
    print .....
      

  2.   


    存储过程中定义参数为:
    CREATE   PROCEDURE     up_add_bbs_user 
    (@user_name   varchar(20),@user_pass   varchar(50),@user_question   varchar(100),@user_answer   varchar(100),@user_mail   varchar(200), 
    @userbase_sex   varchar(10),@userbase_birthday   datetime,@userbase_locus   varchar(200),@userbase_qq   varchar(15), 
    @userbase_signature   varchar(1000),@user_id   int   output) 最后一个@user_id虽然是输出参数,但在调用该存储过程时,也应该指定该参数的值。
    可以这样:
    execute   up_add_bbs_user   @user_name= "123 ",@user_pass= "1 ",@user_question= "喜欢谁 ",@user_answer= "自己 ",@user_mail= "[email protected] ", 
    @userbase_sex= "boy ",@userbase_birthday= "1986-6-6 ",@userbase_locus= "浙江 ",@userbase_qq= "174526675 ",@userbase_signature= "总会成功 " ,0
      

  3.   

    我这个是在SQL2000里的存储过程
    在表里列名user_id的值是自动产生的 
    就是会出现 “过程   'up_add_bbs_user '   需要参数   '@user_id ',但未提供该参数。”
      

  4.   

    --你在执行的时候是没有提供@user_id 参数,虽然其为输入参数,但也必须指定
    delcare   @id   int 
    execute   up_add_bbs_user   @user_name= "123 ",@user_pass= "1 ",@user_question= "喜欢谁 ",@user_answer= "自己 ",@user_mail= "[email protected] ", 
    @userbase_sex= "boy ",@userbase_birthday= "1986-6-6 ",@userbase_locus= "浙江 ",@userbase_qq= "174526675 ",@userbase_signature= "总会成功 " ,@id