0
我有列更新行根據病情在父表
表 TABLE1(父表),STAFFID(PK)
名稱
類別ID(FK)
我還有其他相關表TABLE2(相關表) 帶列
LeaveID(PK)
,STAFFID(FK)
起始日期
我想要做的是寫一個T-SQL查詢表2中,其類別ID在TABLE1 =更新所有行的起始日期欄 '3'
TABLE2通過STAFFID是外鍵列
我有列更新行根據病情在父表
表 TABLE1(父表),STAFFID(PK)
名稱
類別ID(FK)
我還有其他相關表TABLE2(相關表) 帶列
LeaveID(PK)
,STAFFID(FK)
起始日期
我想要做的是寫一個T-SQL查詢表2中,其類別ID在TABLE1 =更新所有行的起始日期欄 '3'
TABLE2通過STAFFID是外鍵列
您可以使用更新語句加入,但像這樣簡單的更新與表1,我認爲最明顯的方法是使用子查詢。它避免了哪些表正在更新以及優化器可能會選擇相同的查詢計劃。
update TABLE2
set StartDate = @SomeDate
where StaffId in (select StaffId from TABLE1
where CategoryID = 3)
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
Paul Spangle - 謝謝。 – StackTrace 2010-10-12 08:30:45