如何修复 "Must declare the scalar variable "@int"

How to fix "Must declare the scalar variable "@int"

我正在创建一个存储过程,以便在参数匹配时将数据插入 table。

这是我的存储过程

    CREATE PROCEDURE [dbo].[spAutoRegistPosition]
        @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

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

Msg 137, Level 15, State 2, Procedure spAutoRegistPosition, Line 8 [Batch Start Line 9]
Must declare the scalar variable "@int"."

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

您没有变量 @INT。似乎您想使用 @UserID

    CREATE PROCEDURE [dbo].[spAutoRegistPosition]
        @Position varchar(255),
        @UserID int
    AS
    IF NOT EXISTS (SELECT * FROM dbo.UserXUserGroup WHERE UserID = @UserID)
    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