当前位置: 代码迷 >> Sql Server >> 关于identity的有关问题
  详细解决方案

关于identity的有关问题

热度:4   发布时间:2016-04-27 11:18:30.0
关于identity的问题?
问题是这样的:
我有一个表,两个字段(id和name),id是设置为identity(从1开始),一开始表里面有10条数据,然后我全删除了,接着我又往里面加数据了,这时id从11开始了,我想问的是,能不能让id从1开始?我知道有一个方法,就是重新建表,但除了这个方法,还有其他的方法吗?

------解决方案--------------------
不用delete,用
TRUNCATE TABLE tb
------解决方案--------------------
同意楼上,如果清空表的话,就用TRUNCATE TABLE tb,自增清零
------解决方案--------------------
用TRUNCATE TABLE tb,清空表,则ID从1开始

sql TRUNCATE 和 delete 的区别
------解决方案--------------------
delete后,删除自增列,重新添加自增列试试!
------解决方案--------------------
谢谢,指点对我的帮助很大
------解决方案--------------------
SQL code
use Tempdbgocreate table T1(ID int identity)insert T1 default values;delete T1godbcc checkident('T1',reseed,0)goinsert T1 default values;goselect * from t1
------解决方案--------------------
SQL code
--1. 下面的代码演示了回滚事务导致标识值不连续的情况:--a.手工回滚事务CREATE TABLE #(id int IDENTITY(0,1),b int)INSERT # SELECT 1 --手工事务回滚BEGIN TRAN    INSERT # SELECT 2ROLLBACK TRANINSERT # SELECT 2SELECT * FROM #DROP TABLE #/*--结果id           b ----------------- ----------- 0           12           2--*/GO --b. 因操作失败自动回滚事务CREATE TABLE #(id int IDENTITY(0,1),b int UNIQUE)INSERT # SELECT 1 --违反惟一键约束,插入失败而导致自动回滚事务INSERT # SELECT 1INSERT # SELECT 2SELECT * FROM #DROP TABLE #/*--结果id           b ----------------- ----------- 0           12           2--*/GO   /*===================================================*/
------解决方案--------------------
探讨
SQL code
use Tempdb
go
create table T1(ID int identity)

insert T1 default values;

delete T1
go
dbcc checkident('T1',reseed,0)
go
insert T1 default values;
go
select * from t1

-------……

------解决方案--------------------
truncate很好。
  相关解决方案