2012-04-23 32 views
1

これは私に@ID@Nameというエラーを返します。Must declare the scalar variableと言っていますが、なぜそれがparamであるのか分かりません。私はここで間違って何をしていますか?スカラー変数を宣言する必要があります。

CREATE PROCEDURE [dbo].[Ins_eProductFull] 
    @Name nvarchar(400) 
    ,@ID int 

    AS 
    BEGIN 

    DECLARE @ID2 int 

    SET NOCOUNT ON; 

    INSERT INTO Table (Name) VALUES (@Name) 

    SET @ID2 = SCOPE_IDENTITY() 

    EXEC dbo.StoredProc1 
     @ID = @ID, 
     @Name = @Name, 
     @ID2 = @ID2 

    END 
    GO 
+2

エラーは 'Ins_eProductFull'または' StoredProc1'から来ますか? –

+0

私はparam/varでSPを実行していると思います。 –

+0

'Ins_eProductFull' spを保存することはできません。 –

答えて

3

問題は私があなたのコードにあるはずのはずの最初のカンマです。自分の目で確かめてください、それをdownvoted誰に

create table Table1(Name varchar(50)) 

Create PROCEDURE [dbo].[Ins_eProductFull] 
@Name nvarchar(400), 
@ID int 
AS 
BEGIN 
    DECLARE @ID2 int 

    SET NOCOUNT ON; 

    INSERT INTO Table1 (Name) VALUES (@Name) 

    SET @ID2 = SCOPE_IDENTITY() 

    EXEC dbo.StoredProc1 
     @ID = @ID, 
     @Name = @Name, 
     @ID2 = @ID2 

END 
GO 

CREATE procedure dbo.StoredProc1 
@ID int, 
@Name varchar(50), 
@ID2 int 
as 
begin 
    select @ID,@Name,@id2 
end 


exec [Ins_eProductFull] 'a',1 

結果:

1 a NULL 

と何のアイデンティティがないのでNULLがあるが、そのすべてがうまく

EDITの作品以外の

+0

コンマはありませんか? –

+0

@Nameパラメータの前にカンマがあると思います。私のタイプミスおそらく – Diego

+0

私はそれを削除..それはStoredProc1問題を引き起こしていた..私は決してこれらの行番号のエラーを把握することはできません。お疲れ様でした。 –

関連する問題