按插入的时间对记录排序

时间:2012-07-10 15:52:31

标签: sql-server sql-server-2005

如何按创建顺序查询数据?

此表格中没有 日期创建的 字段。

3 个答案:

答案 0 :(得分:6)

如果您没有存储插入时间的字段或任何其他有关插入顺序的元数据,没有可靠的方法来获取此信息。

您可能依赖于聚簇索引键,但这些都不能保证。既不是IDENTITY字段也不是其他自动生成的字段。

为了澄清,IDENTITY字段会自动增加,但是......

  • 您可以使用IDENTITY_INSERT
  • 插入显式值
  • 您可以重新设定并开始重复使用值
  • 标识字段没有内置的唯一性强制执行

如果ID字段是您的PK,您可以使用它来获得一个粗略的想法:

SELECT *
FROM MyTable
ORDER BY IdField ASC

根据您的评论,该字段为GUID。在这种情况下,由于GUID本身是随机的和非顺序的,因此无法返回任何可靠的顺序。

答案 1 :(得分:0)

您可以使用NEWSEQUENTIALID()。

答案 2 :(得分:0)

我遇到了这些问题,因为我遇到了同样的问题,这里的解决方案对我有用。

更改表格并添加IDENTITY(1,1)列,并在添加现有行时自动填充该标识列。它将按插入记录的顺序排列。

它适用于我的情况,但不确定它是否适用于所有情况。