【发布时间】:2021-05-20 08:32:42
【问题描述】:
我有这样的看法
CREATE VIEW cust_bonus
AS
SELECT sale_id, customer, saletotal, saletotal*10/100 AS bonus, 1 type FROM sales
UNION ALL
SELECT doc_id, customer, 0, bonus, 1 type FROM bonusplus
UNION ALL
SELECT doc_id, customer, 0, bonus, -1 type FROM bonusminus
当奖金列的值发生变化时,我需要一个触发器来将奖金和客户信息插入另一个表。例如 SELECT SUM(bonus*type) from custbonus 返回 50 然后我在销售额或奖金加减中插入一行。然后相同的语句返回 60 或等等。我不想为这个视图上的每个表写 3 个触发器
【问题讨论】:
-
请不要对我们大喊大叫(在标题中),这会让人觉得很粗鲁,很容易引起反对票和/或接近投票。
-
至于你在问什么,到目前为止你有什么尝试?为什么它不起作用?此外,SQL Server 2008 已经完全不受支持一段时间了。获得受支持的版本已经很久了。
-
啊抱歉,我认为大写锁定的标题会更好
-
我只能为每个表编写 3 个不同的触发器。我找不到其他方法。
-
我建议您的数据模型和业务逻辑存在很大缺陷。奖金就像账户余额。随着
的变化,它会随着时间的推移“累积”。通常,这些是从特定时间点发生的特定类型的事务。在另一个时间点,该奖金被授予或支付,时钟再次开始。也许那个时期是隐含的,因为您打算从提到的 3 个表中清除行 - 但这似乎不太可能。是的 - 您可以为一个表编写许多所有类型的触发器。不常见,但可以做到。
标签: sql sql-server sql-server-2008