2010-10-12 113 views
0

我有列更新行根據病情在父表

TABLE1(父表)

,STAFFID(PK)
名稱
類別ID(FK)

我還有其他相關表TABLE2(相關表) 帶列

LeaveID(PK)
,STAFFID(FK)
起始日期

我想要做的是寫一個T-SQL查詢表2中,其類別ID在TABLE1 =更新所有行的起始日期欄 '3'

TABLE2通過STAFFID是外鍵列

回答

2

您可以使用更新語句加入,但像這樣簡單的更新與表1,我認爲最明顯的方法是使用子查詢。它避免了哪些表正在更新以及優化器可能會選擇相同的查詢計劃。

update TABLE2 
set StartDate = @SomeDate 
where StaffId in (select StaffId from TABLE1 
        where CategoryID = 3) 
+0

Paul Spangle - 謝謝。 – StackTrace 2010-10-12 08:30:45

2
UPDATE TABLE2 T2 
     SET T2.StartDate = '10/10/2010' // YOUR NEW DATE 
INNER JOIN TABLE1 T1 ON T1.StaffID = T2.StaffID 
    WHERE T1.CategoryID = 3