我试图创建一个触发器,当插入名字和姓氏(没有电子邮件),它会自动生成电子邮件,但它给我两行。一个是电子邮件为空,另一个是正确的结果。
CREATE TRIGGER trg_assignEmail
ON StudentInformation
FOR INSERT
AS
BEGIN
DECLARE
@FirstName NVARCHAR (50),
@LastName NVARCHAR (50),
@Email NVARCHAR (100)
SELECT
@FirstName = inserted.FirstName,
@LastName = inserted.LastName,
@Email = inserted.Email
FROM
inserted
IF NOT EXISTS (SELECT Email FROM inserted)
SET @Email = @FirstName+'.'+@LastName+'@disney.com'
SELECT
@FirstName = inserted.FirstName,
@LastName = inserted.LastName,
@Email = TRIM(@FirstName)+'.'+TRIM(@LastName)+'@disney.com'
FROM
inserted
INSERT INTO StudentInformation
(
FirstName, LastName, Email
)
values (@FirstName, @LastName, @Email)
END
1条答案
按热度按时间py49o6xq1#
我猜您正在寻找类似于以下内容的内容:
当一个新的记录被插入到
StudentInformation
中时,需要检查是否提供了电子邮件地址,如果没有提供,则创建一个新的电子邮件地址。因此,在我上面的尝试中,使用了INSTEAD OF INSERT
来在INSERT
语句之前进行检查。