热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SQLServer中自动获取编号字段

①像Access中的自动编号字段右键你的表--设计表--找到你的id字段(类int型)--标识--是--标识种子(初始值)--标识递增量--OK②用IDENTITY(SEED,INCREMENT)参数seed-启始值increment-增量CREATETABLE表名(你的IDIDENTITY(1,1)NOTNULL,你的其他

①像Access中的自动编号字段 右键你的表--设计表--找到你的id字段(类int型)--标识--是--标识种子(初始值)--标识递增量--OK ②用IDENTITY (SEED,INCREMENT)参数 seed -启始值 increment -增量 CREATE TABLE 表名( 你的ID IDENTITY (1, 1) NOT NULL ,你的其他

  ①像Access中的自动编号字段

  右键你的表-->设计表-->找到你的id字段(类int型)-->标识-->是-->标识种子(初始值)-->标识递增量-->OK

  ②用IDENTITY (SEED,INCREMENT)参数

  seed -启始值

  increment -增量

  CREATE TABLE 表名(

  你的ID IDENTITY (1, 1) NOT NULL ,你的其他字段... )

  CREATE TABLE 表名(

  你的字段ID AUTOINCREMENT(1000,10),其他字段... )

  ③修改起始值和步进值

  ALTER TABLE 表名 ALTER COLUMN 你的字段ID COUNTER(2000,50)

  ④让一个删空的表自动增加字段的开始值重新从1开始

  ALTER TABLE 表名 ALTER COLUMN 你的字段ID COUNTER(1,1)

  上述3 4只适用与Access,COUNTER为其一种数据类型,可以在Access中指定一不是自动编号的字段为自动编号字段,,也可以让一自动编号字段重新从指定值按指定步长自动编号。但是如果表中有数据,用户不能用该语句来将该列的数据类型改变为COUNTER 数据类型。对于SQL Server并不支持。

  对于SQL Server我们或许总希望用Alter Table 表名 Alter Column 你的字段 IDENTITY(1,1)

  来指定字段重新从1开始计数,但是这句话本身是错误的,好长时间我也疑惑为什么这句话不能执行。如果我们看看MS 对Alter Table语句的定义就清楚了,这句话根本是错误的。下面是MS对Alter Table语句的定义。

  ALTER TABLE table

  { [ ALTER COLUMN column_name

  { new_data_type [ ( precision [ , scale ] ) ]

  [ COLLATE ]

  [ NULL | NOT NULL ]

  | {ADD | DROP } ROWGUIDCOL }

  ]

  | ADD

  { [ ]

  | column_name AS computed_column_expression

  } [ ,...n ]

  | [ WITH CHECK | WITH NOCHECK ] ADD

  { } [ ,...n ]

  | DROP

  { [ CONSTRAINT ] constraint_name

  | COLUMN column } [ ,...n ]

  | { CHECK | NOCHECK } CONSTRAINT

  { ALL | constraint_name [ ,...n ] }

  | { ENABLE | DISABLE } TRIGGER

  { ALL | trigger_name [ ,...n ] }

  }

   ::=

  { column_name data_type }

  [ [ DEFAULT constant_expression ] [ WITH VALUES ]

  | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]

  ]

  [ ROWGUIDCOL ]

  [ COLLATE ]

  [ ] [ ...n ]

   ::=

  [ CONSTRAINT constraint_name ]

  { [ NULL | NOT NULL ]

  | [ { PRIMARY KEY | UNIQUE }

  [ CLUSTERED | NONCLUSTERED ]

  [ WITH FILLFACTOR = fillfactor ]

  [ ON { filegroup | DEFAULT } ]

  ]

  | [ [ FOREIGN KEY ]

  REFERENCES ref_table [ ( ref_column ) ]

  [ ON DELETE { CASCADE | NO ACTION } ]

  [ ON UPDATE { CASCADE | NO ACTION } ]

  [ NOT FOR REPLICATION ]

  ]

  | CHECK [ NOT FOR REPLICATION ]

  ( logical_expression )

  }

   ::=

  [ CONSTRAINT constraint_name ]

  { [ { PRIMARY KEY | UNIQUE }

  [ CLUSTERED | NONCLUSTERED ]

  { ( column [ ,...n ] ) }

  [ WITH FILLFACTOR = fillfactor ]

  [ ON { filegroup | DEFAULT } ]

  ]

  | FOREIGN KEY

  [ ( column [ ,...n ] ) ]

  REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]

  [ ON DELETE { CASCADE | NO ACTION } ]

  [ ON UPDATE { CASCADE | NO ACTION } ]

  [ NOT FOR REPLICATION ]

  | DEFAULT constant_expression

  [ FOR column ] [ WITH VALUES ]

  | CHECK [ NOT FOR REPLICATION ]

  ( search_conditions )

  }

  可以看到,IDENTITY只是在中,也就是说,我们可以这样使用

  Alter Table 表名 Add 字段名 Int IDENTITY(1,1)

  即,我们可以增加一个字段并指定它为自动编号字段。但是不能更改一个字段为自动编号字段(也或许我没找到方法)。即,如果我们想给表增加自动编号字段,只能使用添加字段的方法,而不能更改一个已有的字段为自动编号字段。

  至于如果需要更改自动编号字段计数起始值可以使用DBCC命令:

  DBCC CHECKIDENT (表名,RESEED,100)

  自动编号字段下一个从101开始计。

推荐阅读
  • 实现Nginx对ThinkPHP URL重写及PATHINFO支持的详细方法解析【PHP开发】
    在PHP后端开发中,实现Nginx对ThinkPHP的URL重写及PATHINFO支持是一项常见的需求。本文详细解析了经过多次尝试和研究,最终找到的一种有效配置方法,能够确保URL_MODERewrite功能正常运行,并提供稳定的服务。此外,文章还探讨了相关配置项的具体作用及其优化建议,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 开发日志:在插入数据到一张表的同时更新另一张表的技术细节与最佳实践 ... [详细]
  • MySQL 数据备份与恢复的常见方法及其实践经验总结。物理备份涉及直接复制数据库文件,适用于大规模数据库环境,但无法在异构系统(如 Windows)中恢复。逻辑备份则侧重于导出建表语句和数据插入语句,便于跨平台迁移和部分数据恢复。此外,本文还探讨了增量备份、全量备份以及使用工具如 mysqldump 和 Percona XtraBackup 的具体应用场景和优缺点。 ... [详细]
  • 揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节
    揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节 ... [详细]
  • MySQL 数据变更后如何实现实时同步至 Elasticsearch
    在 MySQL 数据变更后,如何实现与 Elasticsearch 的实时同步是一个常见的需求。本文介绍了通过配置 MySQL 的 Binlog 功能,结合中间件如 Canal 或 Debezium,将数据变更事件实时捕获并同步到 Elasticsearch 中的方法。此外,还探讨了如何处理数据删除操作,确保 Elasticsearch 中的数据与 MySQL 保持一致。文章还简要对比了 VSCode 和 Dev 两种开发环境的优缺点,为开发者提供参考。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 在数据表中,我需要触发一个操作来刷新特定列的数据。例如,对于以下表格:| ID | Name | IsDeleted ||----|-------|-----------|| 1 | test | True || 2 | test2 | False |我希望在点击“更新”按钮时,能够仅刷新选定行的“IsDeleted”列。这将有助于确保数据的实时性和准确性。 ... [详细]
  • 在第二课中,我们将深入探讨Scala的面向对象编程核心概念及其在Spark源码中的应用。首先,通过详细的实战案例,全面解析Scala中的类和对象。作为一门纯面向对象的语言,Scala的类设计和对象使用是理解其面向对象特性的关键。此外,我们还将介绍如何通过阅读Spark源码来进一步巩固对这些概念的理解。这不仅有助于提升编程技能,还能为后续的高级应用开发打下坚实的基础。 ... [详细]
  • 如何使用R语言高效连接并操作MySQL数据库
    如何使用R语言高效连接并操作MySQL数据库 ... [详细]
  • 本文详细探讨了MySQL并发参数的优化与调整方法,旨在帮助读者深入了解如何通过合理配置这些参数来提升数据库性能。文章不仅介绍了常见的并发参数及其作用,还提供了实际操作中的调整策略和最佳实践,适合希望提高数据库管理技能的技术人员阅读。 ... [详细]
  • 解决MySQL 5.1服务器无法正确识别中文字符的问题
    在使用MySQL 5.1服务器时,可能会遇到无法正确识别中文字符的问题。由于相关资料较少且不够全面,本文将详细阐述解决方案。首先,需要检查MySQL的配置文件,确保字符集设置正确,并通过命令行工具验证当前的字符编码配置。此外,建议更新到最新版本以避免此类问题。 ... [详细]
  • SQL Server 客户端连接远程数据库时未指定端口导致 “用户 'sa' 登录失败 (错误 18456)” 的解决方案 ... [详细]
  • 本文将深入探讨MySQL 8.0中的WITH语句,通过具体应用实例详细解析其在处理复杂SQL查询时的优势。WITH语句能够显著减少临时表的使用,提高代码的可读性和维护性,从而优化查询性能。 ... [详细]
  • 本文提供了在Windows系统上部署和启动MySQL免安装版本的详细步骤。首先,从MySQL官方网站下载社区版免安装包(https://dev.mysql.com/downloads/mysql/8.0.html),将其解压至指定目录,例如D:\tools\mysql。接着,配置系统环境变量,确保MySQL命令行工具可以在任意路径下使用。此外,还需创建并配置my.ini文件以设置MySQL的基本参数,确保数据库服务能够顺利启动和运行。 ... [详细]
  • 本周,我深入研究了 ECharts 插件的使用方法,整体感觉插件操作较为简便,但后台算法较为复杂。此外,我还学习了 MySQL 函数的新应用,进一步提升了数据库操作的灵活性。同时,分享了自己在 Python 书籍外借过程中的体验,总结了一些实用的借阅技巧和心得。 ... [详细]
author-avatar
手机用户2502882045
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有