D-WEBトップニューススポーツ芸能2024年カレンダーベストセラー料理レシピ百科ログファイル一覧

SQLserver - インポートで行削除ができない (2016/11/14)


SQLserver ? インポートで行削除ができない

インポートで行削除ができない

先日、SQLserver2005が動いているサーバーの外付けディスクがクラッシュしてしまいました。この中にはSQLserverのデータファイルも入っていました。重要なデータは他のサーバーにバックアップしてありましたが、SQLserverのデータファイルはコピーができないため、ファイルのバックアップはしていませんでした。ただデータは主なレコードを別のSQLserver2012にスクリプトでコピーをしていたため、全て失うということではありません。

コピーしたSQLserver2012のデータファイルをアタッチできれば、それだけで修復は終わりですが、バージョンが上位ということで、はねられてしまいます。しかたなく、別のフォルダに残っていた古いデータファイルをアタッチして、SQLserver2012からインポートすることにしました。

SQLserver2005のインポートには、転送先テーブル内の行を削除するというオプションがあり、それを使用してインポートしました。ところが結果を見ると、行(レコード)が複数できています。おかしいと思い再度やってみると、さらに同じ行が増えます。転送先テーブル内の行を削除するというオプションが効いていないようです。
転送先テーブル内の行を手動で削除すればいいのでしょうが、大変手間がかかります。新たにテーブルを作成するというオプションもありますが、この場合IDENTITYがコピーされず、手動で設定し直しとなります。初めてSQLserverにデータベースを作成する時はこの方法でおこなうのですが、今回のようにレコードだけのコピーに新たにテーブルを作成するというのは抵抗があります。

どうもおかしいと思い、ネットで調べてみると、なんとか見つかりました。どうもSQLserver2005のインポートのバグのようです。

インポートのウィザードではデータベースを選ぶと、全テーブルの一覧が出ます。そこで左上の変換元にチェックを入れると、全テーブルが選択されて反転表示されます。この状態でマッピングの編集を押すと設定ウィンドウが出て、行の削除とIDの挿入にチェックを入れます。これで次へを押せばインポートが実行されます。結果は最初に書いたように行の削除は行われず、行がダブルためIDの挿入もエラーを起こすという、めちゃめちゃな結果になります。


↑左上の変換元にチェック(全選択)

これを避けるためには、左上の変換元(全テーブル一括)のチェックを止めて、変換元テーブルの左側にあるチェックボックスを個別にオンにします。さらにこの変換元テーブルを1つ選択し、ハイライトさせた状態で「マッピングの編集」をクリックします。設定ウィンドウが出て、行の削除とIDの挿入にチェックを入れます。


↑テーブルを1つづつ選択

これを全てのテーブルに繰り返し設定します。全てのテーブルの設定がすんだら次へを押してインポートを実行します。結果は変換先のテーブルの行が削除され、IDも問題なく挿入されます。いくつもテーブルがあると少し大変になりますが、新たにテーブルを作成して、IDENTITYやキーの再設定をするよりはましといえます。
このようなバグはSQLserverのバージョンアップで解消されていると思われます。バージョンアップする方がいいとは思いますが、上位互換がなくなる機能もありますので、安定した運用に支障をきたすことがあります。バグは、方法があれば、できるだけ解消しておいた方がいいでしょう。

 共有元ページ


スポンサー リンク



話題のアイテム

Nijiadi /Nijiadi 傘 逆転傘 逆さ傘 逆折り式傘 自立傘 長傘 手離れC型手元 耐風 撥水加工 晴雨兼用 ビジネス用 車用 UVカット遮光遮熱

逆転発想の斬新なデザイン :ユニークな逆折設計を採用することにより、濡れた面が傘を閉じると内側に。濡れた状態で閉じても衣服などが濡れるのを防ぎます。電車の中でもまわりに迷惑をかけることがありません。また自立式なので傘立てが無い場所でも大変便利です。



D-web ランキング ベスト

ベストセラー 危険なビーナス 東野 圭吾
音楽 【メーカー特典あり】 馬と鹿 ) ) 米津玄師
DVD 5×20 All the BEST!! CLIPS 1999-2019

ニュース
スポーツ
芸能 19歳グラドル石井優希「ぴちぴち」スクール水着に「かわええええええええ」「これは反則」の声

旬の話題

  共有ブログ


Copyright © 2024 D-web Portal. All Rights Reserved.

当サイトへのリンクは自由です。 D-web ポータル