当前位置: 代码迷 >> Sql Server >> SQL Sever 2008中插入insert语句的工作原理请问。
  详细解决方案

SQL Sever 2008中插入insert语句的工作原理请问。

热度:302   发布时间:2016-04-24 10:08:52.0
SQL Sever 2008中插入insert语句的工作原理请教。。
各位大侠,本人最近在工作中遇到一个蛋疼的问题很是苦恼,希望得到大伙的帮助。

一个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可以确定顺序,不然返回任何结果从关系理论来说都是正确的
------解决方案--------------------
加个主键 用 自增列吧。。
  相关解决方案