2010-08-18 65 views
0

我有一個帶有2個表的SQL Server 2008數據庫。這些表的定義是這樣的:在SQL中更新父屬性值

Device 
------ 
ID 
Name 
Description 
TotalApplications 

Application 
----------- 
ID 
Name 
DeviceID 

我最近在努力加速這一走太長的方式查詢添加了「TotalApplications」一欄。與設備關聯的應用程序數量不會經常更改。當它的時候,我需要寫一個觸發器來處理這個。但現在,我只需要填充我的數據庫。

目前,與每個設備關聯的TotalApplications爲0.顯然,我需要爲我的所有設備記錄更新此值。但是,我無法弄清楚如何做到這一點。有人可以解釋我如何更新我的設備記錄的TotalApplications值嗎?

非常感謝您的幫助!

回答

2

用途:

UPDATE DEVICE 
    SET totalapplications = (SELECT COUNT(*) 
           FROM APPLICATION a 
          WHERE a.deviceid = DEVICE.id) 
WHERE totalapplications = 0 
1

OMG Ponies答案肯定會爲這個工作,但如果這是我的分貝我會避免做添加列,並使用了扳機。相反,使用索引或我無法與索引,我會使用索引視圖。讓我知道你是否希望我發佈。