`

SQL Server数据库自增长标识列的更新修改操作方法

 
阅读更多
在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号。比如文章编号、记录序号等等。自增长的标识列的引用很大程度上方便了数据库程序的开发,但有时这个固执的字段类型也会带来一些麻烦。

一、修改标识列字段值:

有时,为了实现某种功能,需要修改类型为Identity自增长类型的字段的值,但由于标识列的类型所限,这种操作默认是不允许的。比如目前数据库有5条正常添加的数据,此时删除2条,那么如果再添加数据时,自增长的标识列会自动赋值为6,可这时如果想在插入数据时给赋值3呢,默认是不允许的。如果您特别想改变这个字段的值,完全由自己控制该标识字段值的插入,方法还是有的,哈哈。

SET IDENTITY_INSERT /[TABLE/] [ON|OFF]
使用上述语句,可以方便的控制某个表的某个自增长标识列是否自动增长,也就是说是否允许你在insert一条记录时手动指定标识列字段的值。如果指定为on,则可以insert时指定标识列字段的值,该值不自动增长赋值。当然,如果使用完毕,还需使用这个语句将开关关闭到默认状态off,不然下次insert数据时该字段还是不会自动增长赋值的,有始有终嘛。

二、重置标识列字段值:

当数据记录被删除一部分后,后面再添加的新数据记录,标识列数值会有很大的空闲间隔,看上去是不是很不爽呢。即使你删除表中全部记录,identity标识列的值还是会无休止的自动增加变大,而不是从头开始增长。通过下面这条语句可以重置自增长字段的种子值:

DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1])
上述语句将把指定表的种子值强制重设为1。然而,如果你不想将种子重设为1,你可以用你想用的种子值替代第三个参数。如果你想知道当前的种子,而不是想重设标识种子,这时你就要用NORESEED,而不用再去设置第三个参数。
分享到:
评论

相关推荐

    SQL server列自动增加方法

    在SQL Server数据库设计中,有时候我们需要创建一个列,它的值能自动递增,这通常用于主键字段,确保每一行数据都有唯一的标识。这个特性在SQL Server中被称为“标识列”(Identity Column)。下面我们将详细讲解...

    Sql修改标示列的方法

    ### SQL 修改标识列的方法 在数据库管理中,标识列(也称为自动增长列或自增列)是一种特殊类型的列,它通常用于为主键提供唯一值。这种列在数据插入时会自动递增,从而简化了主键的管理过程。然而,在某些情况下,...

    MS SQL Server数据库常用技巧探讨.pdf

    - 对于部分关键字段重复的记录,比如只Name字段重复,可以使用包含identity函数的SQL语句来创建一个临时表,其中identity函数生成一个自动增长的唯一标识(autoID)。接着,通过group by语句得到唯一的Name字段,...

    sqlserver自动增长列引起的问题解决方法

    错误提示"仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'*'中的标识列指定显式值"表明,系统不允许直接对具有自动增长属性的列插入显式值。这是SQL Server的一个安全机制,以防止意外覆盖自动增长序列。...

    SqlServer Mysql数据库修改自增列的值及相应问题的解决方案

    试图更新这样的列会导致错误,因为SQL Server不允许直接更改标识列的值。以下是几种可能的解决方案: 1. **手动修改并恢复自增属性**: 如果你需要临时改变自增列的值,可以先禁用自增属性,修改完后再重新启用。...

    编号自动增长

    在对数据库进行任何操作之后,特别是对自动增长标识列进行了调整后,检查数据库的一致性和完整性是非常重要的。这可以确保所有的数据都正确无误地被保存,并且没有任何潜在的数据丢失或错误。 ```sql SELECT * FROM...

    SQL_Server_2008数据库—创建、建表、查询语句[归纳].pdf

    在对象资源管理器中,你可以通过SQL Server Management Studio的图形界面来创建数据库,定义数据库的名称、所有者、文件位置、大小和增长策略。T-SQL语句创建数据库的示例如下: ```sql Create database student On ...

    SQL Server 不删除信息重新恢复自动编号列的序号的方法

    在SQL Server中,当我们在一个表中使用...总的来说,理解并正确使用TRUNCATE TABLE和DBCC CHECKIDENT命令是SQL Server数据库管理员必备的技能,它们可以帮助你有效地管理和维护自动编号列,以适应不断变化的数据需求。

    SQL SERVER 2000开发与管理应用实例

    14.3.5 在两个SQL Server数据库之间复制对象 451 第 15 章 SQL Server应用疑难解答 455 15.1 访问SQL Server实例的常见问题 455 15.1.1 连接失败 455 15.1.2 用户登录失败 458 15.1.3 测试连接到SQL...

    SQL获取刚插入的记录的自动增长列ID的值

    在SQL数据库中,自动增长列是一种特殊的字段类型,通常用于标识表中的唯一记录。这种类型的列在每次插入新行时会自动递增其值,无需手动设置。在本例中,我们关注的是如何在SQL中获取刚插入记录的自动增长列(通常是...

    SQL SERVER 自增列

    SQL SERVER 自增列,也称为标识列,是数据库设计中常用的一种特性,特别是在关系型数据库管理系统如SQL Server中。自增列通常用作主键的一部分,自动递增其值,为新插入的每一行提供一个唯一的标识。这极大地方便了...

    LINQ to SQL语句(16)之对象标识

    在LINQ to SQL中,我们主要关注的是如何通过LINQ与SQL Server数据库进行交互。 在“LINQ to SQL语句(16)之对象标识”这个主题中,我们将深入探讨如何处理对象的标识性,这是在数据库操作中一个关键的概念。在关系型...

    sql自动增长标识导致导入数据问题的解决方法

    在SQL数据库中,自动增长标识(Identity)是一个非常实用的功能,它允许系统自动为表的特定字段(通常为主键)生成唯一的序列号。然而,在数据导入过程中,由于自动增长标识的存在,可能会引发一些问题,因为它不...

    数据库操作语句大全(sql)

    Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引...

    跨数据库复制数据.doc

    1. **修改表结构**:临时移除自增长标识,完成数据复制后再恢复。 - **移除自增长**:可以通过修改表结构来临时移除自增长属性,完成数据复制后再添加回去。 - **恢复自增长**:确保所有数据复制完成后,重新添加...

    sqlserver2000基础(高手也有用)

    14.3.5 在两个SQL Server数据库之间复制对象 451 第 15 章 SQL Server应用疑难解答 455 15.1 访问SQL Server实例的常见问题 455 15.1.1 连接失败 455 15.1.2 用户登录失败 458 15.1.3 测试连接到SQL ...

Global site tag (gtag.js) - Google Analytics