SQL Server选择插入相同的顺序

时间:2015-03-29 03:33:19

标签: sql sql-server select relational-database

我有下表情况

  • 电影(int movieId PK)
  • Cast(int castId PK)
  • MovieHasCast(movieId,castId Unique Constraint)

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

我的问题是两件事。

  1. 我有一个由于订单而失败的Equals方法,并且不想实现额外的代码来处理乱序名称,并且
  2. 为了" top billing"主要或最知名的演员首先出现的地方。显然,这不会在Cast或电影表上完成,我也不会想到我曾经听说过任何人在关系表上都有一个Identity或Sequence列。

所以我想知道:

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

1 个答案:

答案 0 :(得分:0)

作为Stack Overflow上的has been asked and answered before,您无法按插入顺序获取记录。更具体地说,SQL Server引擎没有这样的保证。这样做的原因是您的数据库引擎需要可以自由地存储那些插入的记录,以便它们想要高效和优化。

如果要在插入期间维护订单,可以创建自动增量列。此列将保留演员的插入顺序,您可以查询原始订单。