我在sql server 2008中有一个表,我需要在不使用标识字段的情况下识别表中的插入顺序。此表也不包含任何datetime数据类型字段。请给我解决方案。
答案 0 :(得分:3)
你做不到。
表中有 no 隐含或内置排序顺序。表只是行的集合。如果您使用ORDER BY something
,则表上的查询会有一个订单(例如,最早到最晚)。
你说你没有这样的事。你别无选择。
答案 1 :(得分:1)
根据定义,表是一组无序行。想想把一堆豆袋扔在地板上。他们登陆的订单是什么?除非你在投掷它们时保持跟踪,或者用1,2,3等标记它们,否则你根本不知道。 (让我们忽略它们都碰巧落在彼此之上的情况。)
您不能对订单插入做出任何假设(例如,通过使用物理订单或相信SELECT *
没有ORDER BY
的订单返回),除非您有其他信息。 Alex Kuznetsov有一个pretty short blog post demonstrating,除了插入顺序之外,还有很多变量可以形成顺序。