【发布时间】:2017-09-01 10:40:30
【问题描述】:
我在 SQL Server 中有一个包含这些列的表:
- 姓名
- 说明
- 音量
- 最后更新
对于这个表有一个触发器
CREATE TRIGGER [dbo].[Table1_Trigger1]
ON [dbo].[Deals]
AFTER INSERT, UPDATE
AS
BEGIN
IF(UPDATE(Volume))
BEGIN
UPDATE Table2
SET TotalVolume = Volume * 100;
END
END
问题是即使描述列更新(由实体框架)而不是卷列,其他表记录也会更新。
【问题讨论】:
-
首先向我们展示完整的触发代码
-
触发器有600行代码。问题不在触发代码中。看起来实体框架会更新所有字段,即使它们没有更改,然后触发器进入 IF
-
把东西排除在外,向我们展示一个可重现的触发器。没有任何代码,我们只能猜测发生了什么
-
请编辑您的问题并将触发器示例放在那里,而不是在评论中
-
UPDATE()本质上告诉您该列是否在SET子句中提及,不它是否确实导致发生更改。
标签: sql-server entity-framework triggers