2016-07-03 31 views
-1

此代码抛出一个错误:必须声明标量变量? Microsoft SQL Server的

Must declare scalar variable @MANDATORY"

代码:

CREATE PROCEDURE [dbo].[CRE_STATION_PR] 
    @P_CODE VARCHAR(10), 
    @P_NAME VARCHAR(50), 
    @P_COORDINATE_X FLOAT, 
    @P_COORDINATE_Y FLOAT, 
    @P_LOCATION VARCHAR(50), 
    @P_STATE_PURPOSE VARCHAR(200), 
    @P_MANDATORY BIT, 
    @P_ID_STATE INT 
AS 
    INSERT INTO TBL_STATIONS (CODE, NAME, COORDINATE_X, COORDINATE_Y, LOCATION, STATE_PURPOSE, MANDATORY, ID_STATE) 
    VALUES (@P_CODE, @P_NAME, @P_COORDINATE_X, @P_COORDINATE_Y, @P_LOCATION, @P_STATE_PURPOSE, @MANDATORY, @P_ID_STATE) 

    RETURN 0 
GO 

我该怎么办?

+1

修正错字在你的语句,这样你用'@ MANDATORY'而不是你宣布为'@ P_MANDATORY'参数。并学会阅读错误信息中的单词,它完全告诉你**问题是什么,以及阅读代码寻找使用“MANDATORY”的两秒钟,告诉你究竟在哪里找到问题。 –

+2

我知道,愚蠢的错误。这是在一天内完成200多个程序后发生的事情。 –

+1

@FelipeCalderon * 200天的程序*真的吗? –

回答

2

。在你的插入查询一个错字

INSERT INTO TBL_STATIONS 
(CODE,NAME,COORDINATE_X,COORDINATE_Y,LOCATION,STATE_PURPOSE,MANDATORY,ID_STATE) 
VALUES 
(@P_CODE,@P_NAME,@P_COORDINATE_X,@P_COORDINATE_Y,@P_LOCATION,@P_STATE_PURPOSE, 
@P_MANDATORY, --Here P_ missing 
@P_ID_STATE) 
相关问题