我有一个带有2个表的SQL Server 2008数据库。这些表的定义如下:
Device
------
ID
Name
Description
TotalApplications
Application
-----------
ID
Name
DeviceID
我最近添加了“TotalApplications”列,以加快花费太长时间的查询速度。与设备关联的应用程序数量不会经常更改。当它发生时,我需要编写一个触发器来处理这个问题。但是现在,我只需要填充我的数据库。
目前,与每个设备关联的TotalApplications为0.显然,我需要更新所有设备记录的此值。但是,我无法弄清楚如何做到这一点。有人可以解释我如何更新我的设备记录的TotalApplications值吗?
非常感谢你的帮助!
答案 0 :(得分:2)
使用:
UPDATE DEVICE
SET totalapplications = (SELECT COUNT(*)
FROM APPLICATION a
WHERE a.deviceid = DEVICE.id)
WHERE totalapplications = 0
答案 1 :(得分:1)
OMG Ponies
回答肯定会有用,但如果这是我的数据库,我会避免添加列并使用触发器。而是使用索引或我无法使用索引到达那里我将使用索引视图。如果您希望我发布,请告诉我。