社区
疑难问题
帖子详情
如何让自增型的字段复位??
beggy
2003-12-12 09:24:45
表A中有自增型的字段 sys_id
sys_id f1 f2
1 a 男
2 b 女
3 c 男
4 d 男
当把表中的记录全部删除,然后再添加新记录的时候sys_id
从5开始,用什么命令可以让sys_id 从1开始,即让sys_id复位
...全文
215
8
打赏
收藏
如何让自增型的字段复位??
表A中有自增型的字段 sys_id sys_id f1 f2 1 a 男 2 b 女 3 c 男 4 d 男 当把表中的记录全部删除,然后再添加新记录的时候sys_id 从5开始,用什么命令可以让sys_id 从1开始,即让sys_id复位
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
beggy
2003-12-12
打赏
举报
回复
to 中海,干活去,别在CSDN玩耍!:
可先删除自增字段,再新建它就行了。
答: 如果我有很多这样的表(70多个)要改,新建会很麻烦.
不过,一般可不必进行这样的所谓“复位”的操作。
答: 我测试程序的时候,会增加自增型字段(sys_id)的值.虽然用delete from 删除了数据,但新增数据的时候sys_id没有从1开始.我想用户使用系统的时候,标识从1开始.
zjcxc
2003-12-12
打赏
举报
回复
或者删除自增字段,再加上
beggy
2003-12-12
打赏
举报
回复
谢谢各位,TRUNCATE TABLE 的方法很好用!
victorycyz
2003-12-12
打赏
举报
回复
可先删除自增字段,再新建它就行了。
不过,一般可不必进行这样的所谓“复位”的操作。
im_yh
2003-12-12
打赏
举报
回复
1.TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。
语法
TRUNCATE TABLE name
参数
name
是要截断的表的名称或要删除其全部行的表的名称。
注释
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
2.
DBCC CHECKIDENT
检查指定表的当前标识值,如有必要,还对标识值进行更正。
语法
DBCC CHECKIDENT
( 'table_name'
[ , { NORESEED
| { RESEED [ , new_reseed_value ] }
}
]
)
参数
'table_name'
是要对其当前标识值进行检查的表名。表名必须符合标识符规则。有关更多信息,请参见使用标识符。指定的表必须包含标识列。
NORESEED
指定不应更正当前标识值。
RESEED
指定应该更正当前标识值。
new_reseed_value
是在标识列中重新赋值时要使用的值。
注释
如有必要,DBCC CHECKIDENT 会更正列的当前标识值。然而,如果标识列是使用 NOT FOR REPLICATION 子句(在 CREATE TABLE 或 ALTER TABLE 语句中)创建的,则不更正当前标识值。
如果标识列上有主键或唯一键约束,无效标识信息可能会导致错误信息 2627
shuiniu
2003-12-12
打赏
举报
回复
或
TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。
语法
TRUNCATE TABLE name
shuiniu
2003-12-12
打赏
举报
回复
DBCC CHECKIDENT
检查指定表的当前标识值,如有必要,还对标识值进行更正。
语法
DBCC CHECKIDENT
( 'table_name'
[ , { NORESEED
| { RESEED [ , new_reseed_value ] }
}
]
)
参数
'table_name'
是要对其当前标识值进行检查的表名。表名必须符合标识符规则。有关更多信息,请参见使用标识符。指定的表必须包含标识列。
NORESEED
指定不应更正当前标识值。
RESEED
指定应该更正当前标识值。
new_reseed_value
是在标识列中重新赋值时要使用的值
pengdali
2003-12-12
打赏
举报
回复
有兩種方法:
方法1:
truncate table 你的表名 --這樣不但將數據刪除,而且可以重新置位identity屬性的字段。
方法2:
delete from 你的表名
dbcc checkident(你的表名,reseed,0) --重新置位identity屬性的字段,讓其下個值從1開始
postgresql重置
自增
字段
1.单纯清除数据的方法 – 清除所有的记录(有外键关联的情况下)-- casecade 可以不用 TRUNCATE TABLE questions CASCADE; – 清除所有的记录,并且索引号从0开始 TRUNCATE TABLE questions RESTART IDENTITY CASCADE; 2. TRUNCATE TABLE questions; alter sequenc...
Sqlite数据库中
自增
字段
重置
当SQLite数据库中包含
自增
列时,会自动建立一个名为 sqlite_sequence 的表。 这个表包含两个列:name和seq。name记录
自增
列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。 如果想把某个
自增
列的序号归零,只需要修改 sqlite_sequence表就可以了。 UPDATE sqlite_sequence SET seq = 0 WHERE name='TableName'; 也可以直接把该记录删掉: DELETE FROM sqlite_sequence WHER
让
自增
列
复位
有兩種方法: 方法1: truncate table 你的表名 --這樣不但將數據刪除,而且可以重新置位identity屬性的
字段
。 方法2: delete from 你的表名 dbcc checkident(你的表名,reseed,0) --重新置位identity屬性的
字段
,讓其下個值從1開始
重置表的
自增
字段
刚刚在转移数据的时候要用到的,上网查了一下,特此记录 --删除原表数据 truncate table tb_producttype --truncate方式也可以重置
自增
字段
-- 重置表的
自增
字段
DBCC CHECKIDENT (tb_producttype,reseed,0) 要注意的就是重置之前得先删除原表的数据,还有,如果是用truncate删除原表数据的话那么...
SQL Server
自增
字段
归零
SQL Server
自增
字段
归零 假设有一数据库表admin.ROLE,现已在其中多次插入删除数据,使得
自增
字段
当前值混乱。于是可通过下列语句,重新设定
自增
字段
的起始值。但要注意在数据库表中不能存在相同的
自增
字段
值。 DBCC CHECKIDENT ('admin.ROLE', RESEED, 0) 其中,admin.ROLE为表明,0为新的
自增
字段
起始值。...
疑难问题
22,207
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章