我正在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
我得到的错误:
'@userSex'附近的语法不正确
我已经尝试过不使用IF语句的情况,并且可以正常工作,所以问题就在那里。但是我需要那句话,因为第二个表中的“性别”字段为“字符”类型。
最佳答案
您错过了SET
:
IF @userSex = 'Male'
SET @userSex = 'M'
ELSE
SET @userSex = 'F'
在SQL中,这是无效的语法,无法为变量
@userSex = 'M'
分配值。参考
SET @local_variable
将先前使用DECLARE @local_variable语句创建的指定局部变量设置为给定值。
设置{{@ @local_variable =表达式}