SqlBulkCopyを使用して、xmlバックアップからテーブルを復元しています。テーブルバックアップの1つは最大200MBの大きさで、多くのレコードがあります。
エラーが発生しています:
Timeout expired.
The timeout period elapsed prior to completion of the operation or the server
is not responding.
SqlBulkCopyを使用して、xmlバックアップからテーブルを復元しています。テーブルバックアップの1つは最大200MBの大きさで、多くのレコードがあります。
エラーが発生しています:
Timeout expired.
The timeout period elapsed prior to completion of the operation or the server
is not responding.
おそらくタイムアウトを増やす必要があります。sqlBulkCopy.BulkCopyTimeout
の値をデフォルトの30秒から増やしてみてください。
このエラーを修正するには、次の2つの方法があります。
デフォルトではタイムアウトを増やします。これは30秒で、0は無限を意味します。
sqlBulkCopy.BulkCopyTimeout = {time in seconds}
デフォルトではBatchSizeを小さくすると、1つのバッチにすべての行が挿入されます。
sqlBulkCopy.BatchSize = {no of rows you want to insert at once}
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.batchsize.aspx http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy .bulkcopytimeout.aspx
SqlCommandオブジェクトのCommandTimeoutプロパティを変更します。
接続文字列のConnectTimeout属性は、サーバーへの接続の試行を停止する前にSqlConnectionオブジェクトを実行する時間を決定します。
また、SqlBulkCopy.BulkCopyTimeoutプロパティを変更します。