开发者社区> 问答> 正文

如何解决“必须声明标量变量” @int”

我正在创建一个存储过程,以在参数匹配的情况下将数据插入表中。

这是我的存储过程

        @Position varchar(255),
        @UserID int
    AS
    IF NOT EXISTS (SELECT * FROM dbo.UserXUserGroup WHERE UserID = @int)
    BEGIN

        -- INSERT HERE
        IF @Position = 'Manager'
            INSERT INTO dbo.UserXUserGroup(UserID, UserGroupID)  
            VALUES (@UserID, 4)

        ELSE IF @Position = 'GM'
            INSERT INTO dbo.UserXUserGroup(UserID, UserGroupID) 
            VALUES (@UserID, 3)

        ELSE IF @Position = 'Direktur'
            INSERT INTO dbo.UserXUserGroup(UserID, UserGroupID)  
            VALUES (@UserID, 3)

    END
    GO

但是当我运行时,我收到了此错误消息

消息137,级别15,状态2,过程spAutoRegistPosition,第8行[批处理开始第9行] 必须声明标量变量“ @int”。

我已经尝试过在BEGIN之后声明变量,但没有用。

展开
收起
社区秘书 2019-12-09 16:51:33 1490 0
1 条回答
写回答
取消 提交回答
  • 看到人家提示的and没?and前后要加空格,我就是忘记加空格报的这个错,你的应该也是那个没加空格的事,仔细检查一下就好了!!! 希望帮到你们哦~~

    Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 “@P0and”。 The error may exist in file [D:\lei\ncdy_utils\updateJingWeiDu\target\classes\mapping\jingWeiDu.xml] The error may involve com.ncdy.ncdy.mapper.jingWeiDuMapper.queryFangyingdian-Inline The error occurred while setting parameters SQL: SELECT [sys_id],[mvp_code],[mvp_name],[mvp_type],[mvp_cgps_lng],[mvp_cgps_lat],[mvp_radius_gps], [mvp_cbaidu_lat],[mvp_radius_baidu],[lt_lng],[lt_lat],[rb_lng],[rb_lat],[mv_code], [mvp_add],[create_time],[del_status],[del_time],[point_status] FROM [MspDB].[dbo].[msp_vpoint]where mvp_name=?and mvp_add=?; Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 “@P0and”。

    2021-02-06 20:43:24
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载