我试图创建一个触发器,当新行插入到我的 StudentInformation
不带 Email
指定的字段。触发器应触发并用以下模式更新电子邮件字段:
firstName.lastName@disney.com(e.g. Erik Kellener would be Erik.Kellener@disney.com)
如果insert语句已包含电子邮件地址,则触发器不会更新电子邮件字段(e、 g忽略触发器的动作)
比如说:
create trigger trg_assignEmail
on StudentInformation
for insert
as begin
if (email is null ) then
update email
set email = (pattern)
....
有人能帮忙吗?
1条答案
按热度按时间dgenwo3n1#
在sql server中,通常使用
instead of insert
触发。我们的想法是
select
给定的值insert
从伪表inserted
,然后将业务规则应用于email
列。请注意,这需要列出insert的所有列。假设你有
firstName
,lastName
以及email
,即:另一种方法是使用
after insert
触发那个update
最后插入的行email
是null
. 这样效率较低(因为您需要扫描表以查找修改过的行),但可以避免列出所有列。为此,我们需要一个主键-让我假设id
: