sqlserver删除记录后再往里面插入数据,插入的数据并非在表的最后!为什么?应该怎么设置?

jinsuo_1986 2009-04-16 03:51:36
举个例子吧:
数据库的表中有以下几条数据:
序号 姓名 电话
1 aa 123
2 bb 34
3 dd 566
4 ff 423
现在我删除了序号为2 的记录,然后在插入一条记录 5 kk 433
本来想得到
序号 姓名 电话
1 aa 123
3 dd 566
4 ff 423
5 kk 433

结果却是
序号 姓名 电话
1 aa 123
5 kk 433
3 dd 566
4 ff 423

请问各位前辈,如何才能得到我想要的效果:
序号 姓名 电话
1 aa 123
3 dd 566
4 ff 423
5 kk 433
...全文
274 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengsijun1987 2009-04-17
  • 打赏
  • 举报
回复
mzjmicrosoft 2009-04-16
  • 打赏
  • 举报
回复
2楼正解
6楼 更详..

学习了.
rtdb 2009-04-16
  • 打赏
  • 举报
回复
简单的说,入库时的顺序是不确定的,

取出时如有需要就指定排序方式好了。
loveflydhl 2009-04-16
  • 打赏
  • 举报
回复
说这么多干嘛,就是order by 序号 asc
jinsuo_1986 2009-04-16
  • 打赏
  • 举报
回复
建索引了也不好使啊。。。。
juqiang 2009-04-16
  • 打赏
  • 举报
回复
按照某个列建立一个聚集索引.

SQL插入的机制就是这样,如果没key,没index,见缝插针。
homejiji 2009-04-16
  • 打赏
  • 举报
回复
索引。。。
jinsuo_1986 2009-04-16
  • 打赏
  • 举报
回复
谢谢楼上各前辈的回答
但是如果这个表没有主键怎么办,也就是说表中数据可以有重复行,上面的只是我举的一个例子
wfyfngu 2009-04-16
  • 打赏
  • 举报
回复
插入的数据按主键排序
wxg22526451 2009-04-16
  • 打赏
  • 举报
回复
数据库有默认排序规则
可以设置下序号为主键
--> Test Data: @t1
declare @t1 table ([序号] int primary key,[姓名] varchar(2),[电话] int)
insert into @t1
select 1,'aa',123 union all
select 2,'bb',34 union all
select 3,'dd',566 union all
select 4,'ff',423

select * from @t1
--Code
delete from @t1 where 序号=2
insert @t1 select 5,'kk',433
select * from @t1

--Drop

--Result
/*

(所影响的行数为 4 行)

序号 姓名 电话
----------- ---- -----------
1 aa 123
2 bb 34
3 dd 566
4 ff 423

(所影响的行数为 4 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)

序号 姓名 电话
----------- ---- -----------
1 aa 123
3 dd 566
4 ff 423
5 kk 433

(所影响的行数为 4 行)
*/
bw555 2009-04-16
  • 打赏
  • 举报
回复
SELECT * FROM TAB ORDER BY 序号

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧