2011-08-09 18 views
1

ストアドプロシージャを使用してdb内の複数のテーブルを更新する必要があります。各テーブルにはPKとしてGUIDがあり、テーブル間にはFKがあります。ストアドプロシージャを使用して複数のテーブルを更新する

たとえば、1つのテーブルが列ID(guid)を持つ「ツール」で、もう1つのテーブルがGUIDとしてIDを持つ「タイプ」です。 Toolには、TypeのGUIDが格納されたテーブルTypeへのFKである「TYPE_ID」という列があります。最初にツールテーブルを更新した後、その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 

私はこのコードは2回目の更新のために間違っていることを知っているが、これは、私はそれを行うことができるようにしたいと思いますかの要旨です。 FKガイドを選択して保管し、次回のアップデートに使用する必要がない方法はありますか?それが唯一の方法であれば、どうすればいいのですか?

答えて

1

TypeテーブルにToolテーブルを結合し、このようなあなたの2回目の更新を書く:

UPDATE ty 
    SET Type = @Type 
    FROM Tool to 
     INNER JOIN Type ty 
      ON to.TYPE_ID = ty.ID 
    WHERE to.ID = @ID 
関連する問題