3

データベースを Excel から MS SQL サーバーに変換していますが、基本的に無知です。

Excel ファイルには、GroupID、Name、Members、Remarksの列見出しがあります。

SQL テーブルには同じフィールドがあります。

SQL を更新すると、一部のレコードはまったく新しいため、追加する必要があり、他のレコードは 1 つまたは 2 つの列を更新する必要がありますが、ほとんどのレコードはまったく必要ありません。これまでのところ、怠惰な方法でファイルを切り捨て、すべてを追加して戻しましたが、適切な方法は何ですか?

4

1 に答える 1

6

ファイルを別のテーブルとしてインポートすると、そこからすべての更新を行うことができます。SQL サーバーのバージョンによっては、 MERGEステートメントを使用できる場合があります。挿入と更新ステートメントをノックアップするのにそれほど時間はかかりません。

更新については、次のようなものです。

UPDATE o
SET    name = i.name
FROM   originaltablename o
       INNER JOIN importedexceltablename i
           ON o.GroupID = i.GroupID
WHERE  o.name <> i.name

そして挿入のためのこのような何か:

INSERT INTO originaltablename
SELECT i.*
FROM   importedexceltablename i
       LEFT JOIN originaltablename o
           ON o.GroupID = i.GroupID
WHERE  o.GroupID IS NULL

ただし、適切な解決策について十分な情報を提供していないため、これは単なる例にすぎないことに注意してください。

于 2013-01-09T17:59:45.083 に答える