Sync Framework 2.1を使用してSQL ExpressからSQL Serverに同期しようとすると、次のエラーが発生することがあります。クライアントがこのエラーを受け取ると、スコープを再初期化する必要があります。エラー状態のような構文には何の問題もありません。長い間問題なく動作します(挿入が起こっているため)。何かご意見は?BulkInsertCommandがSync Framework 2.1で失敗しました
11:18:21 AM 'XXX'テーブルに対して 'BulkInsertCommand'コマンドを実行できませんでした。トランザクションはロールバックされました。コマンド構文が正しいことを確認してください。 午前11時18分21秒AMのMicrosoft.Synchronization トレースログからMicrosoft.Synchronization.Data.ChangeHandlerBase.CheckZombieTransaction(文字列コマンド名、文字列テーブル、例外EX)
で午前11時18分21秒AM:
警告、OfflineAgentMonitor.vshost、2011年4月5日11:16:17:224、BulkコマンドBulkUpdateCommandは次の例外を除いて失敗しました。 1回の適用で行が再試行されます。 System.Data.SqlClient.SqlException(0x80131904):対応するユーザー定義のテーブル型が20の列を必要とする19列のテーブル値のパラメーターを渡そうとしています。
同じテーブルに対して複数のスコープが定義されていますか? – JuneT
いいえ1つのスコープしか定義されていません。それはすべてのテーブルで起こるわけではありません。 – AKoran
が失敗したクライアントの場合は、ユーザ定義のテーブルタイプ(プログラマビリティ - >タイプ - >ユーザ定義のテーブルタイプ)のカラムを、同期ペアの両側のbulkinsertおよびbulkupdateストアドプロシージャと比較してみてください。テーブルUDTと格納されているprocには列数が異なるため、プロビジョニングに問題があり、両方のスコープ定義を同期パートナー間で同期させておく必要があります。スコープを再プロビジョニングすると、テーブルUDTと各同期パーティのストアドプロシージャの両方で、一致する列が適切な数で再作成されているので、その理由を説明します。 – JuneT