SQL 服务器 Select 以相同的顺序插入

SQL Server Select in Same Order Inserted

我有以下table情况

当我插入演员表时,它们会按特定顺序插入(即它们会出现在 IMDB 上)。但是,当我执行 select 时,它们似乎以不同的顺序返回。

我的问题有两点。

  1. 我有一个 Equals 方法由于顺序而失败,不想实现额外的代码来处理乱序的名称,并且
  2. 出于 "top billing" 的目的,确实应该保持顺序,即主要或最知名的演员首先出现。显然,这不会在 Cast 或 Movie table 上完成,而且我认为我从未听说过任何人在关系 table 上拥有 Identity 或 Sequence 列。

所以我想知道:

  1. 为什么他们不按插入的顺序返回给我
  2. 是我唯一的解决方案是在关系table上添加一个额外的列(无论是排名值还是标识列并进行排序)

与 Stack Overflow 上的 has been asked and answered before 一样,您无法按照插入记录的相同顺序取出记录。更具体地说,SQL 服务器引擎不提供此类保证。这样做的原因是您的数据库引擎需要自由地存储那些插入的记录,以达到高效和最佳的效果。

如果你想在插入时保持顺序,你可以创建一个自增列。该栏会记录演员的插入顺序,您可以查询出原始顺序。