代码之家  ›  专栏  ›  技术社区  ›  Curtis White

作为复合主键的一部分的时间戳?

  •  0
  • Curtis White  · 技术社区  · 14 年前

    当使用时间戳为复合主键一部分的Linq to SQL时,我会得到此错误:

    “服务器无法生成类型为”“timestamp”“的主键列。”

    我猜这可能是因为时间戳只是一个行版本,所以它可能必须在插入之后创建?或者…

    2 回复  |  直到 14 年前
        1
  •  0
  •   gbn    14 年前

    你可以解决这个问题。设置

    • 自动生成的值为真
    • 自动同步到OnInsert

    …除非你已经当然有了

        2
  •  5
  •   KM.    14 年前

    不要使用时间戳数据类型!!

    时间戳语法已弃用。 此功能将在 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 .

    身份(属性) http://msdn.microsoft.com/en-us/library/aa933196(SQL.80).aspx
    唯一标识符 http://msdn.microsoft.com/en-us/library/aa260656(v=SQL.80).aspx