`
wangbin-caoming
  • 浏览: 4604 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

sqlserver 自增长需求

阅读更多
有一个需求,已经解决好了,希望能对以后遇到类似情况的朋友有所帮助!
前提:
  第一:数据库是sqlserver2000。
  第二:有很多数据库,名字不同,但是里面的表是差不多的,都存在数据了。
需求:
  要把数据库中相同表某一个int型字段要设置为自增长类型(增长幅度1),且数据不能发生改变。
比如:
  A表中B字段是int型的,现在要把B字段变成自增长类型的,B原来的数据的最后一条是20350,那之前的数据不能发生改变,且新增的一条数据应该是从20350开始自增长。


  我之前的想法是在表中新增加一个字段,定义为IDENTITY,然后把需要变成自增长的列的数据更新到这个新增的自增长列当中,然后删除原来的列,并且重命名新增的列为原来的列的名字。但是实际操作当中在往新增列种更新数据时出错了。原因就是这个表本来就有数据,你新增一个自增长列的时候这个列就已经有数据了。当你 [SET IDENTITY_INSERT 表名 ON]的时候,你就只能往这个表插入数据,但是不能更新自增长列的数据,(如果sqlserver有IDENTITY_UPDATE就好了)。这样一来的话我无法保证之前那个需要设置自增长列的数据不会丢失了。
  后来,新增加一个表,与需要操作的表结构一模一样,但是设置ID列为自增长,然后[SET IDENTITY_INSERT 表名 ON],然后从另外一个表往新表拷贝数据,然后[SET IDENTITY_INSERT 表名 OFF],然后Drop原来的表,最后改表名为原来的表名就好了。

需要注意的地方:
往新表拷贝数据的时候需要写上字段名
insert into 新表名(C1,C2......) select * from 旧表名;
更改表名
EXEC sp_rename '新表名','旧表名';

最后可以把整个过程写成一个存储过程或许当每步都测试好之后结合在一起当SQL运行。
 
分享到:
评论

相关推荐

    SQL Server中实现字段值自动增长且连续

    ### SQL Server中实现字段值自动增长且连续的关键知识点 #### 引言 在数据库管理中,确保特定字段的值能够自动增长且保持连续性对于数据的有序性和完整性至关重要。SQL Server提供了多种方法来实现这一需求,包括...

    sql server 中如何增加递增的序号列【实用】

    在 sql server 中,增加递增的序号列是非常常见的需求,例如,在管理客户信息时,需要为每个客户分配一个唯一的序号,以便于后续的处理和分析。那么,在 sql server 中如何增加递增的序号列呢? 首先,让我们来了解...

    如何解决SQL Server内存不断增加问题

    SQL Server在启动时只会获取少量内存(约8到12MB)用于初始化,随后根据工作负荷的需求动态地分配和释放内存。当用户连接并执行查询时,SQL Server会逐渐获取更多内存以缓存数据和提高查询性能。SQL Server的目标是...

    SQL Server的内存为何不断增加

    综上所述,SQL Server的内存不断增加是由于其自动内存管理策略,旨在优化查询性能,减少I/O操作,并确保与操作系统的内存需求相协调。管理员可以通过配置选项进行精细控制,以适应不同的系统环境和工作负荷需求。...

    解决sqlserver 2012 重启服务ID自动增长1000的问题

    在SQL Server 2012中,用户可能会遇到一个特定问题,即在重启数据库服务后,自增ID字段(如主键)会自动跳过1000个值。这可能会对数据一致性造成影响,尤其是在有严格顺序需求或依赖于这些ID的业务逻辑中。本文将...

    sql server健康检查脚本

    综上所述,SQL Server健康检查脚本是数据库管理中不可或缺的工具,它提供了一种有效、自动化的方式来监控和维护SQL Server实例的健康状态。通过定期执行这些检查,DBA能够及时发现并解决潜在问题,确保数据库系统的...

    SQLSERVER 2005 自动数据备份

    提供的文档 "SqlServer2005数据库自动备份流程.doc" 可能详细介绍了如何配置 SQL Server Agent 作业以及创建备份脚本的步骤,这对于了解具体操作过程非常有用。 10. **安全性**: 记住备份文件同样需要保护,避免...

    SQL Server 自动增长清零的方法

    在SQL Server数据库管理系统中,自动增长(Auto ...总的来说,SQL Server提供了灵活的方式来管理自动增长字段,无论是清零还是调整其行为以适应不同的业务需求。正确理解和使用这些工具可以帮助你更有效地维护数据库。

    数据库转换工具MySQL 转为SqlServer 脚本

    3. **SSMA for MySQL**:该工具可以自动分析、转换MySQL的数据库架构和数据,并生成SQL Server兼容的脚本。用户可以预览转换结果,修复潜在问题,然后在目标SQL Server上执行脚本。 4. **转换过程**:主要包括以下...

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

    在SQL Server中,"sqlserver自动增长列引起的问题解决方法"这个标题涉及到的是数据库操作时遇到的一个特定问题,即在尝试向具有自动增长标识列(IDENTITY列)的表中插入数据时,如果直接尝试插入包含该列的值,系统...

    SQL Server 性能监视与优化.pdf

    - **创建SQL Server数据库警报**:设置阈值警报,当特定性能指标超出正常范围时自动触发警报,以便及时采取措施。 - **运行系统监视器**:使用Windows自带的系统监视器工具,可以实时查看系统资源使用情况。 - **...

    SQL Server 日志收缩工具

    - 避免频繁的手动收缩,因为这可能会影响数据库性能,应设定合理的自动增长策略。 6. **安全性与风险** 在执行任何日志收缩操作之前,务必确保已备份重要的数据库和日志文件,以防意外数据丢失。此外,不当的收缩...

    【亲测有效】2014 SQL server 中文版安装软件

    SQL Server 2014是Microsoft推出的一款关系型数据库管理系统,是SQL Server系列的重要版本之一。它在2014年发布,集成了许多新功能和改进,旨在提高数据存储、管理和分析的效率与性能。以下是对SQL Server 2014的...

    SQL Server中实现字段值自动增长且连续.pdf

    二是删除表中的记录后,自动增长列的值会出现不连续的现象,因为SQL Server不支持自动更新自动增长列的值,也不允许自动增长列存在NULL值或默认值。 为了解决这些缺陷,引入了第二种方法,即通过创建一个自定义函数...

    使用PowerDesigner设计SQL Server数据库

    - **设置“标识列”**(自动增长):指定某些字段为自动增长字段,以便在插入新记录时自动分配唯一值。 - **设置“默认值”**:为字段设置默认值,当插入新记录时如果没有明确指定值,则采用默认值。 - **设置...

    SQL Server设置主键自增长列(使用sql语句实现)

    在SQL Server数据库中,主键自增长列是一个重要的特性,它允许你在插入新记录时自动为该列生成唯一的标识符,通常用于唯一地标识表中的每一行。这在处理大量数据时尤其有用,因为它简化了数据插入过程,你无需手动为...

    删除sql server日志

    根据提供的文件信息,本文将详细解释SQL Server日志删除及管理的相关知识点,包括但不限于日志文件的删除、收缩以及自动收缩设置等。 ### SQL Server 日志管理基础 在SQL Server中,事务日志(Transaction Log)是...

    SQL server.7z

    通过SQL语句CREATE DATABASE,用户可以定义新的数据库,包括设置数据库的大小、文件路径、初始大小以及自动增长策略等。正确地创建数据库能确保系统在运行过程中保持良好的性能。 3. 数据库备份与还原:SQL Server...

Global site tag (gtag.js) - Google Analytics