如果主键是Guid并且没有时间戳列,怎么办'按描述排序'?

时间:2015-05-18 02:04:35

标签: sql-server tsql sql-server-2008-r2

我正在研究一种不寻常的桌面设计。主键数据类型为Guid,表中没有日期/时间列。我如何订购结果下降?

请注意,我不允许在表格中添加新列。不幸的是,其他列也有一些标志,不能用于按降序排序数据。

我需要获取一些最后插入的行。

2 个答案:

答案 0 :(得分:0)

我担心除非您查看事务日志或者可以通过某种顺序列进行排序,否则无法将最后一条记录插入到SQL Server表中。

See here for further details.

你可能很幸运,你的GUID有一个日期/时间组件或其他类似的顺序模式,但不知道你如何生成它很难说的GUID。

答案 1 :(得分:0)

对于您的数据库,在插入新行时必须使用NEWSEQUENTIALID。然后,您将能够使用ORDER BY [GUID列名称] DESC按插入顺序获取行。见https://msdn.microsoft.com/en-AU/library/ms189786.aspx

唯一的问题是当您重新启动服务器时,它可能从较低的GUID开始。这可能是一个问题,取决于你的情况。