-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

手順に多くのエラーがあります:
1 つ目:パラメータを定義するとき、各パラメータの後にカンマが必要です
2 つ目:文字列値を設定しているだけです@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 ではなく VALUES である必要があります

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 に答える