当前位置:  数据库>sqlserver

SQL自动增长的ID号从新位置开始的设置方法

    来源: 互联网  发布时间:2014-08-29

    本文导语:  具体方法如下: DBCC CHECKIDENT (t_user, RESEED, 0) 在查询分析器中执行后,该表自动增长列从1开始 关于DBCC  CHECKIDENT DBCC CHECKIDENT 检查指定表的当前标识值,如有必要,还对标识值进行更正。 语法 DBCC CHECKIDENT ( 'table_name'[ , { NORESEED...

具体方法如下:

DBCC CHECKIDENT (t_user, RESEED, 0)
在查询分析器中执行后,该表自动增长列从1开始

关于DBCC  CHECKIDENT

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。
 

代码示例:
DBCC CHECKIDENT ('table_name', NORESEED) 不重置当前标识值。DBCC CHECKIDENT 返回一个报表,它指明当前标识值和应有的标识值。
DBCC CHECKIDENT ('table_name') 或
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 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。

当前标识值可以大于表中的最大值。在此情况下,DBCC CHECKIDENT 并不自动重置当前标识值。若要在当前标识值大于列中的最大值时对当前标识值进行重置,请使用两种方法中的任意一种:
执行 DBCC CHECKIDENT ('table_name', NORESEED) 以确定列中的当前最大值,然后使用 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 语句将该值指定为 new_reseed_value。

将 new_reseed_value 置为很小值来执行 DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value),然后运行 DBCC CHECKIDENT ('table_name', RESEED)。
结果集
不管是否指定任何选项(针对于包含标识列的表;下例使用 pubs 数据库的 jobs 表),DBCC CHECKIDENT 返回以下结果集(值可能会有变化):
 

代码示例:
Checking identity information: current identity value '14', current column value '14'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

权限
DBCC CHECKIDENT 权限默认授予表所有者、sysadmin 固定服务器角色和 db_owner 固定数据库角色的成员且不可转让。

下面举几个简单的例子,供大家参考。

A. 如有必要,重置当前标识值
下例在必要的情况下重置 jobs 表的当前标识值。
 

代码示例:
USE pubs
GO
DBCC CHECKIDENT (jobs)
GO

B. 报告当前标识值
下例报告 jobs 表中的当前标识值;如果该标识值不正确,并不对其进行更正。
 

代码示例:
USE pubs
GO
DBCC CHECKIDENT (jobs, NORESEED)
GO

C. 强制当前标识值为 30
下例强制 jobs 表中的当前标识值为 30。
 

代码示例:
USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO

    
 
 

您可能感兴趣的文章:

  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • 查询SQL Server中所有数据库的数据文件位置的sql脚本
  • sql server数据库文件与日志文件存放位置怎么修改?
  • 移动sql server 2005中mater和temp数据库存放位置的方法
  • sql连接查询中where关键字的位置优化
  • SQL有外连接的时候注意过滤条件位置否则会导致网页慢
  • sql连接查询中,where关键字的位置讲解
  • sql server 创建主键(uuid和自增长)
  • sql分类汇总及Select的自增长脚本
  • sql server日志收缩脚本及解决日志增长过快的问题
  • SQL Server设置主键自增长列(使用sql语句实现)
  • SQL Server文件自增长 xxx的数值对于“Value”无效的解决方法
  • SQL Server 设置主键自增长列的常用代码
  • 在ejb的entityBean中怎么实现sql server中的自增长字段的主键问题???/
  • sql server日志文件自动增长导致连接超时的解决方法
  • sql自增长设置与删除的深入分析
  • sql server自动增长标识导入数据的问题
  • sql自增长标识导致导入数据失败的处理方法
  • sql自动增长标识导致导入数据问题的解决方法
  • sql语句查询数据库中的表名/列名/主键/自动增长值实例
  • MySQL rownumber SQL生成自增长序号使用介绍
  • 解析SQL 表结构信息查询 含主外键、自增长
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • SQL Server降权运行 SQL Server 2000以GUESTS权限运行设置方法
  • DATASTAGE中如何连接SQL SERVER,要设置什么,I mean plug_in
  • T-SQL实例 函数结果设置为列别名
  • 再问一个Jdbc-Odbc的问题?如何连接SQL Server7.0(不设置数据源)?
  • 谁能告诉我 sql server 2000 jdbc驱动程序应该怎么设置,如果设环境变量怎么设,谢谢!
  • 设置sql server定期自动备份
  • SQL 超时解决方案 有时并不是设置问题
  • 将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇
  • sql server 2005 单词首字母大写的设置代码
  • 设置Oracle来同时访问多个SQL Server
  • SQL查询超时的设置方法(关于timeout的处理)
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3