-2

我的存储过程不起作用,我收到一个错误:

消息 102,级别 15,状态 1,过程 SP_HUGO_INSRTGAME,第 4 行
“@firstName”附近的语法不正确。
消息 137,级别 15,状态 1,过程 SP_HUGO_INSRTGAME,第 12 行
必须声明标量变量“@StudentFirstName”。
消息 102,级别 15,状态 1,过程 SP_HUGO_INSRTGAME,第 13 行
“值”附近的语法不正确。

这是我的存储过程:

Create Procedure SP_HUGO_INSRTGAME 
(
@lastName as nvarchar(200)
@firstName as nvarchar(200)
@email as nvarchar(200)
@StudentFirstName INT

)
As
Begin

    SET @StudentFirstName =  'insert into tbl_hugo_user (user_email, first_name, last_name, confidence, inspire, creativity, bonus_q )  values (@email, @firstName, @lastName, 0, 0, 0, 0); SELECT SCOPE_IDENTITY() ';
    insert into tbl_hugo_game (user_hugo_Id) value (@StudentFirstName )
End
4

3 回答 3

3

您在过程中有很多错误:
首先:在定义​​参数时,每个参数后必须有一个逗号
其次:您只是设置@StudentFirstName字符串值,但它是一个 int。从字符串中我知道您首先插入行,然后将最近插入的行的 ID 获取到@StudentFirstName. 为此,您必须执行以下操作:

insert into tbl_hugo_user (user_email, first_name, last_name, confidence, inspire, creativity, bonus_q ) values (@email, @firstName, @lastName, 0, 0, 0, 0)

SELECT @StudentFirstName = SCOPE_IDENTITY()

使用它你会得到 id 然后你可以做

insert into tbl_hugo_game (user_hugo_Id) values (@StudentFirstName )
完成。

于 2012-12-18T10:35:15.660 回答
-1

必须是 VALUES 而不是 VALUE

insert into tbl_hugo_game (user_hugo_Id) values (@StudentFirstName )
于 2012-12-18T10:24:09.347 回答
-1
Create Procedure SP_HUGO_INSRTGAME 
    @lastName as nvarchar(200),
    @firstName as nvarchar(200),
    @email as nvarchar(200)
As
Declare @StudentFirstName Int
Begin
    insert into tbl_hugo_user (user_email, first_name, last_name, confidence, inspire, creativity, bonus_q )  values (@email, @firstName, @lastName, 0, 0, 0, 0)

    SELECT @StudentFirstName=SCOPE_IDENTITY()
    insert into tbl_hugo_game (user_hugo_Id) values (@StudentFirstName )
End
于 2012-12-18T10:29:20.960 回答