数据库:SQL Server自增长列的编号
SQL Server表中的自动编号ID重新开始排列
有两种方法:
方法1:
truncate table 你的表名 --这样不但将数据删除,而且可以重新置位identity属性的字段。
方法2:
delete from 你的表名
dbcc checkident(你的表名,reseed,0) 重新置位identity属性的字段,让其下个值从1开始
说法二:
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
说法三:
如何定义自动编号字段的初始值和步进值?
问题:
如何定义自动编号字段的初始值和步进值?
如何定义自动增加字段的初始值和步进值?
如何使删除过数据的自动增加字段的开始值重新从1开始?
回答:
通过以下语句,你可以在建表的时候指定其起始值和步进值:
CREATE TABLE tblNewOrder2 (
OrderId AUTOINCREMENT (1000, 10),
ItemId LONG, Quantity LONG)
你也可以用下面的语句修改下一个起始值和步进值:
ALTER TABLE tblOrder
ALTER COLUMN OrderId COUNTER (2000, 50)
要重新开始:
ALTER TABLE tableName
ALTER COLUMN OrderId COUNTER (1, 1)
在 VBE 界面里面用以下代码:
docmd.runsql "ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1)"
这里要注意的是自动编号往往被用作标识记录的唯一性,但是 Jet 在用 DDL 语句更改自动编号的同时不会保证修改后的自动编号仍然保持唯一性,因此会出现标识号重复的现象。要避免这一现象最好把自动编号设定为主键、或者不可重复。
Please realize that Jet won't prevent you from altering AutoNumber seed and increment values that produce duplicate values. However, if the AutoNumber column has been designated as the primary key or it contains a unique index, you will be prevented from saving rows with duplicates.
不过这些操作需要 JET 4.0。
如果不会用查询或者 JET SQL 去参考以下文章中的动画
http://access911.net/index.asp?board=4&recordid=77FAB11E1ADC
如何用查询设计向导建立一个查询
http://access911.net/down/eg/swf/createquery.swf
如何运行一段 jet sql 代码
http://access911.net/down/eg/swf/runsql.swf
数据库:SQL Server自增长列的编号的更多相关文章
- SQL Server自增长列插入指定值 -- SET IDENTITY_INSERT ON|OFF(转)
想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT 示例: 1.首先建立一个有标识列的表:CREATE TABLE products (i ...
- SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF
原文:SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF 本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然 ...
- sql server ------创建本地数据库 SQL Server 排序规则
sql server完整复制数据库 sql server导入导出方法 SQL Server 排序规则
- 数据库SQL Server与C#中数据类型的对应关系
ylbtech- .NET-Basic:数据库SQL Server与C#中数据类型的对应关系 数据库SQL SServer与C#中数据类型的对应关系 1.A,返回顶部 数据库 C#程序 int int ...
- 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接
前言 DataGrip:Jet Brains出品的一款数据库管理工具(没错,是Jet Brains出品,必属精品).DataGrip整合集成了当前主流数据库(如:SQL Server, MySQL, ...
- Sql 重置自动增长列
Sql 重置自动增长列: dbcc checkident(表名, reseed, 0) 使用的情况,一般出现在主外键关联表,导致无法 truncate 只能delete的情况. 此时我们可能会需要重置 ...
- SQL Server分区键列必须是主键一部分
SQL Server分区键列必须是主键一部分. 必须把分区列包含在主键/唯一约束/唯一索引的键列中. USE tempdb GO -- 测试表 CREATE TABLE dbo.tb( id int, ...
- SQL Server 2014 聚集列存储
SQL Server 自2012以来引入了列存储的概念,至今2016对列存储的支持已经是非常友好了.由于我这边线上环境主要是2014,所以本文是以2014为基础的SQL Server 的列存储的介绍. ...
- SQL Server修改标识列方法(备忘)
原文:SQL Server修改标识列方法(备忘) SQL Server修改标识列方法 ----允许对系统表进行更新 exec sp_configure 'allow updates',1 reconf ...
随机推荐
- html扩展调用qq聊天窗口
需要在官方给qq开通客服功能,使用相应的html代码,别人才能通过链接调用到该qq 官方生成调用链接 over!over!over!
- 51nod1639(组合数学)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639 题意:中文题诶- 思路:组合数学 n根鞋带要组成一个环, ...
- euler证明
我们用g(x)表示x的欧拉函数值,即1~x与x互质的数的个数 欧拉函数公式为: g(x)= y*((x1-1)/x1)*((x2-1)/x2)*((x3-1)/x3)....(其中x1, x2, x3 ...
- 第二篇 Nosql讲解之windows下memcache的安装(一)
memcached基本概念 1.Memcached是danga的一个项目,最早是LiveJournal服务的,最初为了加速LiveJournal访问速度而开发的,后来被很多大型的网站采用. 官方网站: ...
- assembly x86(nasm)串比较
预留字符串口令,输入口令串与预留密码串比较.若匹配则显示“MATCH!CONGRATULATION”,否则显示“NOMATCH!”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输 ...
- Tomcat - 怎么控制某个类或者包下的日志打印级别
问题与分析 Tomcat是使用自己的日志实现tomcat-juli.jar来打印日志信息的,日志会被打印到catalina.out里,除去你在项目里自己使用的日志框架外,由System.out,Sys ...
- idea | 设置支持java8的lambda表达式
修改配置: setting: project structure:
- OSPF-1-OSPF的数据库交换(1)
一.OSPF路由器ID(RID) 选举过程: 1.使用router-id id 命令中配置的路由器ID 2.up着的环回接口最大的ip 3.up着的非环回接口最大ip 如果路由器的RID发生了变化 ...
- django项目设置
1 项目下的文件 用于项目设定的setting.py 用于url规则匹配的urls.py 用于创建socket对象的wsgi.py 2 urls django2.0相比1.x,在url匹配语法上有很大 ...
- [洛谷P2186] 小Z的栈函数
题目链接: 传送门 题目分析: 大模拟,先得存操作,然后再处理每个数-- 有一个小优化,在处理操作的时候顺便判一下最后栈里是不是有且仅有一个数,但A完了才想起来,所以就算了-- 总之就是个模拟题--没 ...