Pau*_*oza 0 t-sql sql-server triggers
我创建了跟随TSQL触发器,只要基础表更新,它就会永远运行.
CREATE TRIGGER Trigger_MDSS_ComputeAggregates
ON dbo.MonthlyDetectionScoresSums
AFTER UPDATE, INSERT
AS
BEGIN
update dbo.MonthlyDetectionScoresSums
SET
YPElec = CAST(COALESCE (i.YPLocChain_TotElec, i.YPGlobChain_TotElec, i.YPSIC_TotElec) AS real),
YPGas = CAST(COALESCE (i.YPLocChain_TotGas, i.YPSIC_TotGas) AS real)
from MonthlyDetectionScoresSums mdss
inner join INSERTED i on i.ACI_OI = mdss.ACI_OI
END
GO
Run Code Online (Sandbox Code Playgroud)
你知道为什么它可能会运行很长一段时间吗?
我可以建议您使用计算列并删除触发器吗?
ALTER TABLE dbo.MonthlyDetectionScoresSums ADD
YPElec AS CAST(COALESCE (YPLocChain_TotElec, YPGlobChain_TotElec, YPSIC_TotElec) AS real)
YPGas AS CAST(COALESCE (YPLocChain_TotGas, YPSIC_TotGas) AS real)
Run Code Online (Sandbox Code Playgroud)
从我看到的,您正在更新刚刚更新/插入的行.数据库引擎将为您完成,无需触发器.