2009-06-09 6 views
1

誰かが私を助けてくれることを願っています。私はローカルデータキャッシュを追加したVisual Studio 2008 WinForms アプリケーションを持っています。ローカルデータキャッシュはで、SqlServerCEを介してSDFファイルを使用し、 変更追跡が有効なSQL Server 2008 dbaseをキャッシュしています。SQLServerCE /ローカルデータキャッシュ/同期フレームワーク - 挿入エラー

これは動作しており、双方向の同期などができます。

私が抱えている問題は、 がVSウィザードによって作成されたローカルテーブルにデータを挿入することです。私はVSインターフェイス(ショーのデータ)を介して、プログラム、あるいはいずれかの挿入データを試し とき、私は原因 主キー制約に「重複する値が一意のインデックスに挿入することができません」を示すエラー を取得します。

テーブルにはauto incの主キーがあり、 がリセットされているようです。これはすべてのテーブルに起こるわけではなく、たったの しかありません。

どのように私はこれを修正できますか?

よろしく、 アダム

答えて

0
  • あなたは、関連するテーブルのサーバーDDL文を投稿することができますか?
    • どのようにクライアントにプライマリキーを作成していますか?エラーメッセージは、同じPrimaryKeyをテーブルに再度挿入しようとしていることを示しています。
    • はたぶんも、私は同じ問題を持っていた、とGUIDとのInt /自動増分の値を置き換えsqlce does not support server generated keys
0

考えます。私にはうまくいく。

0

私は同じ問題を抱えていました。私は各テーブルの各プライマリキーをGUIDにすることでそれを修正しました。この方法では、オフライン環境でクライアントでレコードを作成した後、サーバーと同期して戻すと、クライアント/サーバーの主キー間に競合が発生しません。これはまた、INSERTの値が既に存在する場合に、IDENTITYが自動的にインクリメントされることとの競合を防ぎます。下のスクリーンショットに示されているように

は、データ型は(それは任意の文字列のようなデータ型であることができる)nvarchar(50)に設定され、デフォルト値が(newid())に設定され、アイデンティティ仕様をNoに設定されています。

GUIDは、SQL Server Management Studioでスクリーンショットを属性: GUID attribute screenshot in SQL Server Management Studio

あなたはMicrosoft's documentationからGUIDデータタイプについての詳細を読んで、そして、彼らはあなたの特定のシナリオに適しているかどうかを確認することができます。

関連する問題