バルク挿入時に文字列を自動的に切り捨てる方法は?

.net c# sqlbulkcopy sql-server

質問

私は多くの行(Entity Frameworkオブジェクトから構築)をSQL Serverに挿入したい。問題は、一部の文字列プロパティの長さがデータベースの列の長さを超えているために例外が発生し、すべての行がデータベースに挿入できなくなることです。

ですから、長すぎる行を自動的に切り捨てるようにSqlBulkCopyに指示する方法があるのでしょうか?もちろん、DataTableに挿入する前に、限られた長さを超えた場合は、各プロパティをチェックして部分文字列を取りますが、プログラム全体が遅くなります。

人気のある回答

一括処理には必ずステージング/ロードテーブルを使用してください。

次に、実際のテーブルにフラッシュする前に、データを処理、クリーニング、スクラブなどができます。これには、LEFT、ルックアップ、重複排除などが含まれます。

そう:

  1. ワイド列を持つステージングテーブルをロードする
  2. INSERT realtable (..) SELECT LEFT(..), .. FROM Stagingを使用して、ステージングから "実際の"


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ