触发器内的连接字段

问题描述 投票:1回答:2

我想创建一个触发器来根据名字和姓氏创建电子邮件。基本上,在填充表时,如果电子邮件为NULL,我想自动创建一个电子邮件,名字为[email protected]

这是我想出的。我知道是连接将所有内容都丢弃了。

CREATE TRIGGER trg_assignEmail On PersonID
AFTER INSERT, UPDATE
AS
BEGIN
    UPDATE PersonID
        SET Email=
            (SELECT(RTRIM(FirstName), RTRIM(LastName)) FROM PersonID)
    WHERE Email IS NULL;
END

我收到的错误消息是Incorrect syntax near ','

当我插入SET Email=UPPER(FirstName)而不是RTRIM时,它们都可以正常工作,并且所有NULL电子邮件都更改为名字,因此我对其余的代码充满信心。因此,我认为问题在于如何正确地连接名+姓的字段。

sql concatenation database-trigger
2个回答
0
投票
CREATE TRIGGER trg_assignEmail On PersonID AFTER INSERT, UPDATE AS BEGIN UPDATE PersonID SET Email= SELECT RTRIM(FirstName)+''+RTRIM(LastName) FROM PersonID WHERE Email IS NULL; END

0
投票
CREATE TRIGGER trg_assignEmail On PersonID AFTER INSERT, UPDATE AS BEGIN UPDATE PersonID SET Email=CONCAT(RTRIM(FirstName), RTRIM(LastName)) WHERE Email IS NULL; END
© www.soinside.com 2019 - 2024. All rights reserved.