Временная метка как часть составного первичного ключа? - PullRequest
0 голосов
/ 12 апреля 2010

Я получаю эту ошибку при использовании linq-to-sql с меткой времени в составе составного первичного ключа:

"Сервер не может сгенерировать столбец первичного ключа типа Timestamp."

Полагаю, это может быть связано с тем, что отметка времени является просто строкой версии, поэтому, возможно, она должна быть создана после вставки? Или ...

Ответы [ 2 ]

5 голосов
/ 12 апреля 2010

не используйте тип данных timestamp !!

Синтаксис метки времени устарел. Эта функция будет удалена в будущая версия Microsoft SQL Сервер. Избегайте использования этой функции в новые разработки и планируют изменить приложения, которые в настоящее время используют эта функция.

отметка времени (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776(SQL.90).aspx версия строки (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776.aspx

Кроме того, если он предназначен главным образом для изменения, чтобы отслеживать версии, зачем делать его частью первичного ключа? изменение первичного ключа может вызвать много проблем!

Если вам необходимо сгенерированное системой значение для первичного ключа, используйте идентификатор или guid .

IDENTITY (Недвижимость) http://msdn.microsoft.com/en-us/library/aa933196(SQL.80).aspx
уникальный идентификатор GUID http://msdn.microsoft.com/en-us/library/aa260656(v=SQL.80).aspx

0 голосов
/ 12 апреля 2010

Вы можете обойти это .. установить

  • Автоматически сгенерированное значение в True
  • Автосинхронизация с OnInsert

... если у вас, конечно, нет

...