2

C# と SqlBulkCopy を使用して、いくつかのレコードを一度にデータベースに挿入しています。レコード リストは小さく、最大 100 ~ 200 レコードです。

ここに私のコードがあります:

 using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
            {
                bulkCopy.DestinationTableName = destinationTableName;

                bulkCopy.WriteToServer(reader);
            }

タイムアウトの例外が時々あり、さらに調査するために未加工の SQL クエリを取得したいと考えています。SqlBulkCopy オブジェクトからそれを引き出す方法を教えてもらえますか?

4

1 に答える 1

3

BulkCopyTimeoutプロパティを設定してみてください。デフォルトでは接続タイムアウトが使用されていると思います。

通常のINSERTを実行していないため、BulkCopyからSQLを取得できるとは思いません。SQL プロファイラーを実行してみてください。

既存のデータを挿入するための INSERT ステートメントを生成する (別のデータベースで実行できるようにする) 場合は、Red Gate のSQL Data Compareを使用できます。無料版もあると思います。

于 2013-10-22T10:23:29.713 に答える