1

あるテーブルから別のテーブルに値を挿入しています。テーブルには100000レコードがあります。しかし、あるテーブルから別のテーブルに値を挿入し始めると、データのどの行にも問題があります。正確にはどこにあるのかわかりません。では、挿入ステートメントが完了していないために、どの行の値がエラーであるかをどのように知ることができますか?エラーが発生した後、この停止はテーブルに何も挿入しません。これは私が使用する簡単なステートメントです:

INSERT INTO Person (FirstName, LastName,Email)
SELECT FirstName, LastName, Email
FROM Person.Contact
4

3 に答える 3

1

ターゲットテーブルに課せられた制約に関する追加情報がなければ、非常に一般的で遅い解決策になります。

  1. 選択した行のカーソルループ
  2. try/catch内に任意の行を挿入します
  3. 例外出力行とエラーメッセージ

問題に対する具体的な回答については、詳細情報を提供してください。

別の方法は、SSISを使用することです。ここでは、エラーのある行に個別のチャネルを提供できます。このチャネルは、エラーの原因となるすべての行を収集する別のテーブルにつながる可能性があります。

于 2013-03-12T09:38:39.097 に答える
0

質問を理解するのは難しいですが、通常の容疑者は次のとおりです。

  1. ヌル不可の列にヌルを挿入しようとしています

  2. 外部キー違反

  3. 制約違反。

  4. 間違ったデータ型を挿入しようとしています。

質問を編集してエラーメッセージを追加してください。

于 2013-03-12T09:20:14.480 に答える
0

Personはあなたのスキーマの名前だと思います、それで多分あなたは意味します

INSERT INTO Person.Person (FirstName, LastName,Email)
SELECT FirstName, LastName, Email
FROM   Person.Contact
于 2013-03-12T09:20:52.370 に答える