zoukankan      html  css  js  c++  java
  • 把SQL Server表中的自动编号ID重新开始排列

    问题一:在SQLServer 中经常会遇到这样的问题:清空表中的原始数据,并希望那些自动增长的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)  


  • 相关阅读:
    生成水印图片
    Java 生成图片-字体杂色去除
    java比较两个日期大小
    JS--添加option
    使用JS刷新showModalDialog窗口
    日期格式转换(String->Date)
    根据当前日期及出生日期,计算当前年龄(function)
    PHP的错误和异常处理
    IntelliJ IDEA15,PhpStorm10,WebStorm11激活破解
    apache相关配置
  • 原文地址:https://www.cnblogs.com/ancientmoon/p/2355327.html
Copyright © 2011-2022 走看看