2012-04-23 91 views
1

這給我一個錯誤@ID@NameMust 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'? – 2012-04-23 15:29:49

+0

我認爲使用參數/ var執行SP會導致它 – 2012-04-23 15:30:59

+0

它不會讓我保存'Ins_eProductFull' sp,因爲它會拋出這些錯誤。 – 2012-04-23 15:32:37

回答

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是因爲沒有身份在我的測試表上

+0

什麼逗號不應該在那裏? – 2012-04-23 15:36:05

+0

我想我在@Name參數前看到了一個逗號。我的打字錯誤可能是 – Diego 2012-04-23 15:38:04

+0

我刪除了它..這是StoredProc1導致該問題..我永遠無法弄清楚這些行號錯誤。謝謝你的努力。 – 2012-04-23 15:39:00