我的表视图上有一个触发器,它将所有视图记录到特定页面。此触发器使用应由插入字段派生的总视图更新公司表。在实际情况下,永远不会发生一家公司获得多个视图(因此只需选择所有视图并添加一个就足够了),但我喜欢安全地编码,所以...
公司:ID、视图
CompanyViews:ID、CompanyId
需要的触发器:
UPDATE Companies
SET Views = Views + (SELECT Count(1) FROM INSERTED AS i WHERE i.CompanyId = Id)
WHERE Id IN (SELECT DISTINCT(CompanyId) FROM INSERTED)
但是,这...不起作用。我不太清楚为什么,但基本上预期的结果如下:说,插入的表有
Id, CompanyId
1 2
2 2
3 3
4 5
5 2
6 3
在这种情况下,公司 2 将获得 3 次观看,公司 3 将获得 2 次观看,公司 5 将获得 1 次观看。
当我的查询失败时,我应该如何处理?
编辑:通过“不起作用”,我的意思是,值保持不变。事实上,它会将 NULL 插入它确实检测到的行(即 DISTINCT 值)。如果我省略了 Views +,它只会将其设为 0。