SQL Server触发器不适用于插入,但适用于更新

时间:2016-05-12 02:34:46

标签: sql-server triggers

我有一个SQL Server触发器,它不起作用forafter insert,但它有效for update。数据是从CSV文件导入的,我确信正在插入记录,因为SQL Server表中的记录计数增加了。

可能导致这种情况发生的原因是什么?

这是我的触发器。高级描述是:jobs记录可与多个job_budgets记录相关联,并由job_no匹配。 job_budgets有一些费用需要总结并放入jobs的字段中。

ALTER TRIGGER [dbo].[MC_tu_jobs_by_job_budgets] 
ON [dbo].[job_budgets]
FOR INSERT, UPDATE
AS
BEGIN
    set nocount on

    if update(orig_est_dollars)
    begin
        update dbo.jobs
        set jobs.original_cost = (select sum(job_budgets.orig_est_dollars) 
                                  from job_budgets 
                                  where job_budgets.job_no = i.job_no 
                                    and job_budgets.company_no = i.company_no)
        from inserted as i
        inner join dbo.[jobs] on dbo.[jobs].job_no = i.job_no 
                              and dbo.[jobs].company_no = i.company_no
    end
end

0 个答案:

没有答案