正确的我让自己感到困惑所以只是想澄清,让我们说我想在触发器内进行以下更新。触发器位于名为tblCustomers
:
UPDATE tblContacts
SET tblContacts.ContactName = I.ContactName
FROM tblContacts cont
INNER JOIN inserted I ON cont.customerID = I.customerID
这只会更新inner join
和inserted
之间tblContacts
的记录,即大多数情况下只有一条记录,或者我是否需要包含WHERE
子句?
另外,我可以在where
子句中使用别名(续),还是需要使用tblContacts
?
抱歉,我知道这很愚蠢,但我让自己变得越来越困惑!谢谢!
答案 0 :(得分:1)
这只会更新
inserted
和tblContacts
之间内部联接的记录,即大多数情况下只有一条记录
是。这可以是一行或多行 - 取决于导致触发器实际发生的语句 - 但它只会更新属于Inserted
表的那些行
另外,我可以在where子句中使用别名(
cont
),还是需要使用tblContacts
?
你绝对可以使用表别名!实际上,当您定义表别名时,您必须使用它。
答案 1 :(得分:1)
如果每个ON子句定义匹配tblContacts.ContactName
,则更新查询将更新所有ON cont.customerID = I.customerID
值。因此,如果10行匹配则会影响10个值(10行)。
同样,是的,您可以在WHERE
条件中使用表别名。