1. 怎样在sql2005中重置自动编号
在SQL Server中,要将表中的自动编号ID重新开始排列有两种方法:
方法1:
truncate table 你的表名 --这样不但将数据删除,而且可以重新置位identity属性的字段。
truncate table jsq
方法2:
delete from 你的表名?
dbcc checkident(你的表名,reseed,0) 重新置位identity属性的字段,让其下个值从1开始?
truncate命令不但会清除所有的数据,还会将IDENTITY的SEED的值恢复到原是值。
而DBCC CHECKIDENT则更加方便一些,可以在不删除数据的情况下指定SEED的值。
1. truncate table tablename
2. DBCC CHECKIDENT (tablename,reseed,1)
2. 如何手动重置sql 主键ID
怎么重置有标识的主键,有时主键ID,设置自动增量后,要怎么重置:如 ID 主用用到SQL的这个功能: dbcc checkident(test, reseed, 0)
3. SQL Server 命令dbcc checkident(表名,reseed,0) 有的表1开始 有的0开始为什么怎么让他都从1开始
1、语句是起效的。如果是reseed, 0,则新的ID将为0;
如果都写dbcc checkident(表名,reseed,1) ,是不是从1开始 -- yes
2、此语句只是设置了新的计数器,对于表中已经有的记录,不作改变;
3、新的seed,尽量>表中已有记录的最大值(该ID字段)。否则,不断运行,有可能出现“重复值”错误
4、如果想循环使用,通常使用mod运算符来处理,并及时删除过期数据
4. 怎样清空SQL SERVER数据库,清空后让表的ID自增列从1开始
SQL Identity自增列清零方法
1.使用DBCC控制台命令:
dbcc checkident(表名,RESEED,0)
2.truncate table 也可将当前标识值清零
但当有外键等约束时,无法truncate表
可以先禁用外键约束来truncate表:
--禁用外键约束
exec sp_msforeachtable 'alter table ? nocheck constraint all'
--清空数据
truncate table 表名
--启用外键约束
exec sp_msforeachtable 'alter table ? check constraint all'
我常用 truncate table 进行数据表内数据的清空,同时将ID列重新开始计数!
truncate table 课程表
truncate table 学生表
truncate table 选课表
5. SQL数据库列自动生成编号
两种方法:
1、用Truncate
TRUNCATETABLEname可以删除表内所有值并重置标识值
2、用DBCC CHECKIDENT
DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,
但如果表内有数据,则重设的值如果小于最大值可能会有问题,这时可以用 dbcc checkident("bc_pos",reseed)即可自动重设值。
注意:
只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
(5)sqlcheckident扩展阅读:
关于上述标识列的引用
如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替,例如,若要查询上例中ID等于1的行,
以下两条查询语句是等价的:
1、SELECT * FROM T_test WHERE IDENTITYCOL=1
2、SELECT * FROM T_test WHERE