SQL 重置自动增长型字段,IDENTITY字段 标识字段
2010-12-06 11:44
78 查看
检查指定表的当前标识值,如有必要,则更改标识值。
Transact-SQL 语法约定
语法
DBCC CHECKIDENT
(
'table_name'
[ , {
NORESEED | { RESEED [ , new_reseed_value ] }
}
]
)
[ WITH NO_INFOMSGS ]
如有必要,DBCC CHECKIDENT 会更正列的当前标识值。
当标识列中存在 PRIMARY KEY 或 UNIQUE 约束时,无效标识信息会导致错误消息 2627。
对当前标识值所做的具体更正取决于参数规范。
DBCC CHECKIDENT 命令 标识更正或所做的更正
DBCC CHECKIDENT ( 'table_name', NORESEED )
不重置当前标识值。DBCC CHECKIDENT 返回一个报告,它指明当前标识值和应使用的标识值。
DBCC CHECKIDENT ( 'table_name' ) or DBCC CHECKIDENT ( 'table_name', RESEED )
如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。
DBCC CHECKIDENT ( 'table_name', RESEED, new_reseed_value )
将当前标识值设置为 new_reseed_value。如果自创建表后没有在表中插入任何行,则在运行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。此外,插入的下一行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,并且标识列中存在 PRIMARY KEY 或 UNIQUE 约束,则后续引用该表时将产生错误消息 2627。
当前标识值可以大于表中的最大值。在此情况下,DBCC CHECKIDENT 将不自动重置当前标识值。若要在当前标识值大于列中的最大值时对当前标识值进行重置,请使用以下两种方法中的任意一种:
执行 DBCC CHECKIDENT ('table_name', NORESEED) 确定列中的当前最大值,然后在 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 命令中将其指定为 new_reseed_value。
执行 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value),并将 new_reseed_value 设置为很小的值,然后运行 DBCC CHECKIDENT ('table_name', RESEED)。
参数
'table_name'
是要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须符合标识符规则。
NORESEED
指定不应更改当前标识值。
RESEED
指定应该更改当前标识值。
new_reseed_value
在标识列中重新赋值时要使用的新种子值。
WITH NO_INFOMSGS
取消所有信息性消息。
结果集
无论是否(为包含标识列的表)指定了选项以及指定了什么选项,DBCC CHECKIDENT 都返回以下信息(返回值可能有所不同):
复制代码
Checking identity information: current identity value '290', current column value '290'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
权限
Transact-SQL 语法约定
语法
DBCC CHECKIDENT
(
'table_name'
[ , {
NORESEED | { RESEED [ , new_reseed_value ] }
}
]
)
[ WITH NO_INFOMSGS ]
如有必要,DBCC CHECKIDENT 会更正列的当前标识值。
当标识列中存在 PRIMARY KEY 或 UNIQUE 约束时,无效标识信息会导致错误消息 2627。
对当前标识值所做的具体更正取决于参数规范。
DBCC CHECKIDENT 命令 标识更正或所做的更正
DBCC CHECKIDENT ( 'table_name', NORESEED )
不重置当前标识值。DBCC CHECKIDENT 返回一个报告,它指明当前标识值和应使用的标识值。
DBCC CHECKIDENT ( 'table_name' ) or DBCC CHECKIDENT ( 'table_name', RESEED )
如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。
DBCC CHECKIDENT ( 'table_name', RESEED, new_reseed_value )
将当前标识值设置为 new_reseed_value。如果自创建表后没有在表中插入任何行,则在运行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。此外,插入的下一行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,并且标识列中存在 PRIMARY KEY 或 UNIQUE 约束,则后续引用该表时将产生错误消息 2627。
当前标识值可以大于表中的最大值。在此情况下,DBCC CHECKIDENT 将不自动重置当前标识值。若要在当前标识值大于列中的最大值时对当前标识值进行重置,请使用以下两种方法中的任意一种:
执行 DBCC CHECKIDENT ('table_name', NORESEED) 确定列中的当前最大值,然后在 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 命令中将其指定为 new_reseed_value。
执行 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value),并将 new_reseed_value 设置为很小的值,然后运行 DBCC CHECKIDENT ('table_name', RESEED)。
参数
'table_name'
是要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须符合标识符规则。
NORESEED
指定不应更改当前标识值。
RESEED
指定应该更改当前标识值。
new_reseed_value
在标识列中重新赋值时要使用的新种子值。
WITH NO_INFOMSGS
取消所有信息性消息。
结果集
无论是否(为包含标识列的表)指定了选项以及指定了什么选项,DBCC CHECKIDENT 都返回以下信息(返回值可能有所不同):
复制代码
Checking identity information: current identity value '290', current column value '290'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
权限
相关文章推荐
- sql service重置自动增长字段数字的方法
- mybaites 通过字段自动生成sql 语句
- java访问sql 2008 检索自动生成的键,获得 IDENTITY 值的方法
- 在Oracle、MySQL、MS SQL Server中创建自动增长字段
- 使用SQL语句重置自动编号起始值
- sql 重置数据库自增字段
- 用SQL在Access中创建带自动增长字段的表
- SQL Server中根据某个字段,ID字段自动增长的实现
- 有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:2004050001,2004050002……2004059999等,采用Transact-SQL实现新订单编号的思
- Sql server 中关闭ID自增字段(SQL取消ID自动增长)
- SQL 重置 Identity 主键
- SQL中自增量字段Int型 identity(1,1)与Guid作为主键的性能比较
- SQL IDENTITY(函数) 自动加自
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
- SQL或ACCESS数据库,自动增量字段重新从1开始的方法
- 在Oracle、MySQL、MS SQL Server中创建自动增长字段
- 用sql语句如何给字段添加和去掉identity属性
- Access数据库中自动编号字段重置为1
- ms SQL Server表自增字段重置
- sql 重置数据库自增字段【转载】