質問: 30 001) 3. WindowsサービスはすべてのSAP連絡先を削除し、現在の最高IDの後に列を再シードします:30 002 また、私は頻繁にこのIDに基づいてユーザーを照会するので、自動増分された整数の代わりにGUIDのようなものを使用すると、パフォーマンスが高すぎます。私も`SqlBulkCopyOptions.KeepIdentity`を調べて`SqlBulkCopyOptions.KeepIdentity`が、これはうまくいきません。私はファイル内のSAPからIDを取得していないし、もし私がしたら、手動で入力した連絡先フィールドの値と簡単に衝突する可能性があります。 id列の値がこのような指数関数的な割合で増加しないように列を再シードする他の解決法はありますか?
回答: 私は以下のワークフローを提案します。 1. tempSAPImportのような新しいテーブルに現在のワークフローでインポートします。 2. テーブルに変更された行だけを追加します。 ``` Insert Into ContactDetails (Select * from tempSAPImport EXCEPT SELECT Detail1, Detail2 FROM ContactDetails) ``` 3. 私は、あなたのSAPのテーブルは主キーを持っていると思う場合は、行が更新された場合にのみ、コントロールを使用することができます。 ``` Update ContactDetails ( XXX your update criteria) ``` この方法でデータを高速にインポートし、既存のID値も保持します。速度要件に応じて、インポート後にインデックスを追加すると、プロセスがスピードアップされます。