各位大侠,本人最近在工作中遇到一个蛋疼的问题很是苦恼,希望得到大伙的帮助。
一个table中有1000条数据,不规则排列,无索引。如果我单独塞入一条数据A,那我执行
select top 1001的时候显示的最后一行是这个A数据吗?如果我要强制的将这个A数据固定在表的最后一行,我该怎么做?
希望能得到大侠详解T-SQL中insert的操作原理。
------解决方案--------------------
强制将后插入的数据固定在最后一行的话,就要有一个流水号或者createdate的时间戳,然后在流水号或者时间戳上建立狙击索引
如果是用createdate时间戳做聚集索引的话,当然要考虑到createdate是不是会相同的情况?
然后查询的时候select top 1 from table order by createdate(或者是流水号) desc
至于原理,你了解一下聚集索引B树结构就知道了
------解决方案--------------------
没有索引就不好办了 因为在数据库中没有索引都是无序排列的
------解决方案--------------------
创建聚集索引,加order by可以确定顺序,不然返回任何结果从关系理论来说都是正确的
------解决方案--------------------
加个主键 用 自增列吧。。