0

複合主キーの一部としてタイムスタンプを指定してlinq-to-sqlを使用すると、次のエラーが発生します。

「タイプ'Timestamp'の主キー列をサーバーで生成できません。」

これは、タイムスタンプが単なる行バージョンであるためだと思います。したがって、挿入後に作成する必要がありますか?または...

4

2 に答える 2

5

タイムスタンプデータ型は使用しないでください!!

タイムスタンプ構文は非推奨になりました。この機能は、MicrosoftSQLServerの将来のバージョンで削除される予定です。新しい開発作業でこの機能を使用することは避け、現在この機能を使用しているアプリケーションを変更することを計画してください。

タイムスタンプ(Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776 (SQL.90) .aspx rowversion(Transact-SQL) http://msdn.microsoft.com/en-us/ library / ms182776.aspx

また、バージョンを追跡するために主に変更するように設計されている場合、なぜそれを主キーの一部にするのですか?主キーを変更すると、多くの問題が発生する可能性があります。

主キーに対してシステムで生成された値が必要な場合は、IDまたはGUIDを使用してください。

IDENTITY(プロパティ) http://msdn.microsoft.com/en-us/library/aa933196 (SQL.80).aspx
GUID uniqueidentifier http://msdn.microsoft.com/en-us/library/aa260656(v= SQL.80).aspx

于 2010-04-12T18:27:56.323 に答える
0

あなたはそれを回避することができます..セット

  • 自動生成された値をTrueに
  • OnInsertへの自動同期

...もちろんすでに持っていない限り

于 2010-04-12T18:47:49.037 に答える