プロが教えるわが家の防犯対策術!

SQLserver2000を触る事になり思った通りにならず困っております。

テーブルに主キーを設定せずデータ型を「int」でフィールドに重複する数値を入れてしまいました。

後から重複入力のミスに気づき重複したレコードを
「テーブルを開く」-「全行を返す」から1レコードを
削除しようとしたのですが、
「キー列の情報が足りないか、正しくありません。更新の影響を受ける行が多すぎます。」と表示され削除できません。

このテーブルは、多くのビューで使用してすでに動いている再作成することは難しいです。

このレコードを削除する良い方法はあるのでしょうか。
ご存知の先生方ご指導よろしくお願いいたします。

A 回答 (2件)

インポートする前にデータをすべて削除するか、


インポート時に「列マッピングと変換」で「変換先
テーブル内の行を削除」を行えば、重複しないと
思います。
オンラインで使用しているテーブルの場合は、
時間を決めて行ったほうが良いと思います。

ビューで使用しているとの事なので難しいかもしれま
せんが、データを削除した後キーを作成してデータを
インポートし、ビューを再度クリエイトしたほうが、
長期的に見て効率的かもしれません。
    • good
    • 0
この回答へのお礼

Azzuri様。感謝感激です。

インポート時に「列マッピングと変換」で「変換先
テーブル内の行を削除」を行いインポートできました。

報告が書き込みできず遅くなりましてすみません。
本当にありがとうございました。

お礼日時:2005/02/22 19:08

一度、データをエクスポートして編集してからインポート


すればよいと思います。
    • good
    • 0
この回答へのお礼

Azzuri様 早速のご指導ありがとうございます。

テストDatabaseで実施してみましたが。。。
Excelファイルへエクスポートし重複している1行を削除後、同じテーブルへインポートしました。

・変換元データベースからテーブルとビューをコピー
 対象のシート名とインポート先テーブルを指定
 すぐに実行
すると、今まであったレコードと今回インポートしたレコードが重複してしまいました。

インポート時に元データに上書きしてくれると希望通りの内容になるのですが。。。
方法が間違っているのでしょうか。

他に思い当たる方法がありましたらご教授お願いいたします。

お礼日時:2005/02/22 10:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す