2011-08-09 39 views
1

我想要使用存儲過程來更新數據庫中的多個表。每個表都有一個GUID作爲PK,並且在這些表之間有FK。使用存儲過程更新多個表

例如,一個表是「工具」與列ID(的GUID)和另一表是「類型」與ID作爲再次GUID。工具中有一列稱爲「TYPE_ID」,它是存儲在其中的Type爲Guid的Table Type的FK。我想先更新工具表,然後再更新基於FK的類型表。

UPDATE Tool 
    SET [email protected], [Enabled][email protected], [email protected], [email protected], 
     [email protected], [email protected], [email protected] 
    WHERE [email protected] 

Update Type 
    SET [email protected] 
    WHERE [email protected] AND 
     Tool.TYPE_ID=Type.ID 

我知道這個代碼是不正確的第二次更新,但是這是我想如何能夠做到它的要點。有沒有辦法不必選擇FK Guid,存儲它,並將其用於下一次更新?如果這是唯一的方法,我該怎麼做?

回答

1

撰寫您這樣的第二次更新,加入Tool表到Type表:

UPDATE ty 
    SET Type = @Type 
    FROM Tool to 
     INNER JOIN Type ty 
      ON to.TYPE_ID = ty.ID 
    WHERE to.ID = @ID