1. sql 表的主键是自增序列,如何解决删除的id...
没有必要,不连续就不连续。干吗必要连续。
ID本来就是作为数据的唯一标识用的,只要是唯一的就行,连不连续无所谓。
因为如果连续的话,那么你每次删除数据都要进行ID重新排列,这样当数据较多时,会严重影响速度,所以大家都不这样作。
2. sql 里面 我有三个列 其中ID是自增 但是当我删除其中一条数据时
把数据导出到别的表备份(可以用select * into 备份表名 from 表名),然后
truncate table 表名
再把数据塞回来(注意ID不要写在insert 语句里)
insert into 表名(字段1,字段2 ) select 字段1,字段2 from 备份表名
再drop删除掉备份表即可
3. sql删除自增长主键
有3种方法
truncate table ‘你自己的表名称’
--删除该表所有的数据
删除该表重新建
dbcc checkident(‘你的表名称’, reseed, 1)
4. sql中自增列 id,删除其中一个 ,如何查找被删除的行
CREATETABLE#test(
idintidentity(1,1),
valint
);
INSERTINTO#testVALUES(101);
INSERTINTO#testVALUES(102);
INSERTINTO#testVALUES(103);
INSERTINTO#testVALUES(104);
INSERTINTO#testVALUES(105);
INSERTINTO#testVALUES(106);
INSERTINTO#testVALUES(107);
GO
SELECT*FROM#test
GO
idval
----------------------
1101
2102
3103
4104
5105
6106
7107
(7行受影响)
DELETEFROM#testWHEREid=2;
DELETEFROM#testWHEREid=5;
DELETEFROM#testWHEREid=6;
GO
SELECT
M.number
FROM
#testtRIGHTJOINmaster..spt_valuesM
ON(M.number=t.id)
WHERE
M.type='P'
ANDM.number>0
ANDM.number<=(SELECTMAX(id)FROM#test)
ANDt.idisnull
GO
number
-----------
2
5
6
(3行受影响)
5. SQL自增字段,有数据删除后,如何实现自增字段的连续
对于自增字段确实有这个问题,也无法改变,这是由于自增字段的值是内部计算,每使用一次都会自动+1,有点类似线序,你可以使用如下两种方法解决:
1、自增字段改为不用手工增加,每次都取最大值+1来存储
2、不改自增字段类型,采用逻辑删除的方法,比如在表中增加一个字段isdel(1表示已删除,0或者其它值表示没有删除),记录当前记录是否属于删除状态,
6. 在mysql中,主键自增怎么去掉
比如说 test表的id列自增,删除自增的sql如下
alter table test change id id int;
7. sql 自增列删除
当你插入的时候,自增列的数据可以用SQL语句获得,比如你插入的时候自增列插入的数为:
declare @add int
select @add=count(*)+1 from 表名
insert into 表名(自增列) values(@add)
这样就可以了!