Negative Primary Keys

前端 未结 9 1974
青春惊慌失措
青春惊慌失措 2020-12-10 11:25

Are there any repercussions using Negative Primary Keys for tables (Identity Increment -1, Identity Seed -1 in SQL Server 2005)?

The reason for this is we\'re creati

相关标签:
9条回答
  • 2020-12-10 11:32

    You'll want to review legacy code and look for where developers have sorted on primary key as a lazy/sloppy way of sorting by date (because identity pk's usually are strongly or perfectly correlated to time).

    0 讨论(0)
  • 2020-12-10 11:33

    This is perfectly fine from SQL Server's perspective. The real question is going to be your application.

    0 讨论(0)
  • 2020-12-10 11:36

    Another option is to prefix the legacy keys with a string like "OLD_". The ony problem is your key field will be non-numeric.

    If you have to have numeric keys, you could introduce a "legacy" indicator column, and the primary key would be a combination of the numeric ID and the legacy indicator (hopefully, that combination should be unique).

    0 讨论(0)
  • 2020-12-10 11:40

    Not a problem.

    It is slightly un-orthodox, but apart from that, fine.

    The default offered by SQL Server is just that - a default, and can be changed to suit needs. Looks like you got a good compromise.

    0 讨论(0)
  • 2020-12-10 11:45

    Only problem is you won't be able to add a third data source this way!

    0 讨论(0)
  • 2020-12-10 11:46

    Like others have said, the database is fine with this.

    But it would be a problems for a .NET application that uses DataSet+DataAdapter as they use negative keys as temporaries for new records.

    Other data-access layers may use similar tricks.

    0 讨论(0)
提交回复
热议问题