【发布时间】:2021-03-05 15:38:44
【问题描述】:
当添加到发票表[InvoiceTable] 时,我创建了一个触发器来更新发票记录上的自定义日期[Invoice.ContractStartDate]。
下面的触发器有效,但我希望它只为 插入的记录运行,并避免对 DateTimeCreated 使用 WHERE 子句。
对于Contract.Days <> ' ',我仍然需要WHERE 子句
这可以使用AFTER INSERT 或INSTEAD OF INSERT 吗?
CREATE TRIGGER UpdateContractStartDate ON InvoiceTable
FOR INSERT AS
UPDATE InvoiceTable
SET InvoiceTable.ContractStartDate = InvoiceTable.InvoiceDate + Contract.Days
FROM Contract
INNER JOIN InvoiceTable
ON InvoiceTable.ContractID = Contract.ContractID
WHERE (CAST(InvoiceTable.DateTimeCreated AS DATE) = CAST(GETDATE() AS DATE))
AND (Contract.Days <> '')
【问题讨论】:
-
请标记您的关系型数据库