在SQL Server中,如果主键是GUID,如何按插入顺序排序表行?

时间:2012-05-08 15:41:03

标签: sql-server primary-key guid

我已经开始使用GUID而不是主键的自动增量整数。

然而,在开发过程中,我习惯于查询(从SQL管理工作室或visual studio)数据库,以便查看我的应用程序刚刚插入了什么记录,并且因为我无法通过主键订购而感到生气desc以便查看最新记录。

有没有办法完成这个?

3 个答案:

答案 0 :(得分:5)

您无法根据广告订单顺序订购GUID列。你需要依赖另一个专栏。

我的建议是添加一个名为CreationMoment的列作为DateTime,其默认值为GETDATE()。从理论上讲,可能会发生冲突(即相同的创建日期/时间),因此您必须确定该数据类型是否合适。根据我的经验,它从来都不是问题。

答案 1 :(得分:3)

你不能,你必须添加新的字段bigint与自动增量和依赖,不需要使其成为关键。 bigint没有碰撞和尺寸问题

答案 2 :(得分:2)

@Yuck和@Sameh都有很好的答案,但我认为TIMESTAMP专栏更适合您的需求。它保证是唯一的,可以使用ORDER BY进行排序。

MSDN - timestamp (Transact-SQL)