2011-02-10 8 views
0

私は複数のレコードを更新する際に少し新しいです。このための解決方法については最善の方法を知りたいと思っています。基本的に私は という2つのテーブルを持っています.1つはサーバIDとユーザID を照合し、別のテーブルは値が複数のカラムを持つ各ユーザIDのレコード情報を持っています。基本的にはここにテーブル内の一致するIDを持つレコードごとに複数のレコードを更新する

は、そのは、仕事に行く方法です:

はtb_UserServerMapテーブル 内の特定のサーバIDの一致するすべてのユーザーIDを取得し、その後tb_settingテーブル内のforeachのuserIdは、新しい値

+0

など、私はそれらの値が得られるか、更新する列の名前を知らなくても、それ以上を埋めることができない

CREATE PROCEDURE Blah @Server_ID int /* or whatever data type is appropriate */ as UPDATE ts SET ColumnA = 10 /* New value for column A - maybe passed as a parameter? */ /* More columns here */ FROM tb_setting ts inner join tb_UserServerMap usm on ts.user_id = usm.user_id WHERE usm.server_id = @Server_ID 

、データの種類:可能あなたはあなたのテーブルスキーマとあなたが達成しようとしているものの期待される結果(前後)を含めます。私が意味するものの上位投票された関連する質問のいくつかを見てください – keith

答えて

0
で列を更新します

あなたはforeachのを必要としない、

更新tblNameは、ストアドプロシージャのfirstCol = val1と、secondCol = val2のID(ID1、ID2、ID3)

1

での基本的な構造を考え設定あなたがあれば、より良い答えを得るのを助けることができ

+0

+1。私はこのテンプレートが基本的なアイデアをうまく​​提供していると確信しています。 –

関連する問題