变量附近的语法不正确

Ale*_*o93 3 t-sql sql-server heidisql

我正在SQL Server上使用HeidiSQL,试图创建一个插入后触发器,这是代码。

CREATE TRIGGER TR_After_Insert_User ON User1 AFTER INSERT
AS
BEGIN
    declare @userName varchar(24)
    declare @userLName varchar(20)
    declare @userSex varchar(10)

    select @userName = i.name from inserted i
    select @user1LName = i.lastname from inserted i
    select @userSex = i.gender from inserted i

    IF @userSex = 'Male'
       @userSex = 'M'
    ELSE
        @userSex = 'F'

    INSERT INTO db2.dbo.user2(name, lastname, gender) 
    VALUES (@legajoName, @legajoName, @legajoSexo)
END
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

'@userSex'附近的语法不正确

我已经尝试过不使用IF语句的情况,并且可以正常工作,所以问题就在那里。但是我需要那句话,因为第二个表中的“性别”字段是“字符”类型。

Tan*_*ner 5

您错过了SET

IF @userSex = 'Male'
   SET @userSex = 'M'
ELSE
   SET @userSex = 'F'
Run Code Online (Sandbox Code Playgroud)

在SQL中,这是为变量分配值的无效语法: @userSex = 'M'

参考

设置@local_variable

将先前使用DECLARE @local_variable语句创建的指定局部变量设置为给定值。

设置{{@ @local_variable =表达式}