最も単純と最も「リレーショナル」の方法は、あなたがリレーショナルデータベースで利用可能なツールを使用することであろう。
テーブルに新しい値を入力して(テーブル変数にすることもできます)、基本テーブルをの単一のセットベースのステートメントで更新します。
このような何か:あなたの質問で
-- declare the table to hold the keys and new values
DECLARE @NewValues TABLE (Data VARCHAR(20), NewHeader VARCHAR(50))
-- insert new data into this table variable instead of having n separate variables
INSERT INTO @NewValues (Data, NewHeader)
VALUES ('data a', 'New Header a'), ('data b', 'New Header b'),
....., ('data n', 'New Header n');
-- update your base table in a SINGLE set-based statement
UPDATE dbo.YourBaseTable
SET Header = nv.NewHeader
FROM @NewValues nv
WHERE dbo.YourBaseTable.Data = nv.Data
一つの素敵な簡単な文で、@NewValues
テーブル変数に任意の数の行を処理することができます.....
コードを実行することはできません。 'Header'カラムの値を何に設定していますか?また、Sqlはセットベースの操作に最も適しています。ループは可能な限り避けるべきです。適切に回答できるように、質問を編集して[mcve]を作成してください。 –