0

単純な作業のように思えるかもしれませんが、良いアプローチを実際に見つけることができません。

フィールド (単一フィールド) に対して更新する対応する値の長いリストを持つ ID の長いリストがあります。

id = 1 | field = value_1 
id = 2 | field = value_2
.......................
id = n | field = value_n 

フィールドを 2 つのリスト (または選択した他の方法) に配置できますが、ループして各値を更新する必要があります..

これには何が最善のアプローチでしょうか?

さらにいくつかの詳細を追加するには: 値は大きな Excel にありますが、これは Excel の処理に関するものではありません。値のリストをコピーしてテキストに貼り付けます。私は2つの長いリスト(id1、id2、..)(value_1、value_2、...)を考えていました

4

3 に答える 3

3

1 回限りのジョブの場合、テキストを CSV または bcp.exe で処理可能なその他の形式に変換してから一時テーブルにインポートし、JOIN を介して更新を行い、一時テーブルを削除します。

反復可能なジョブの場合、SSISを使用します。フラット ファイルでデータをソースするか、直接Excel ソースソースし、テーブルをソースし、2 つのソースをマージして、結果をテーブルに適用します。

于 2016-08-08T11:35:52.637 に答える
1

選択した回答は良い方法ですが、完全を期すために: これが 1 回限りのタスクであり、すべての更新がそのような単純なパターンに従う場合、入力テキストを一連の更新ステートメントに直接変換することも効果的です。 Excel の数式を使用して入力するか、テキスト エディターの置換機能を使用します。

例:

id     newvalue
1      foo
2      grok

になる

id     newvalue    generated statement
1      foo         update dbo.mytable set field1 = 'foo'  where id = 1
2      grok        update dbo.mytable set field1 = 'grok' where id = 2

迅速で汚いですが、注意して適用し、予期しない構文エラーに注意してください。

于 2016-08-08T13:44:22.910 に答える