热门标签 | 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开始计。

推荐阅读
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 面对众多的数据分析工具,如何选择最适合自己的那一个?对于初学者而言,了解并掌握几种核心工具是快速入门的关键。本文将从数据处理的不同阶段出发,推荐三种广泛使用的数据分析工具。 ... [详细]
  • MVC模式下的电子取证技术初探
    本文探讨了在MVC(模型-视图-控制器)架构下进行电子取证的技术方法,通过实际案例分析,提供了详细的取证步骤和技术要点。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文介绍了MySQL窗口函数的基本概念、应用场景及常见函数的使用方法。窗口函数在处理复杂查询时非常有用,例如计算每个用户的订单排名、环比增长率、以及动态聚合等。 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中查询重复数据,并提供了多种方法来筛选和删除重复记录,包括基于单个字段和多个字段的重复数据处理。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 解决ADODB连接Access时出现80004005错误的方法
    本文详细介绍了如何解决在使用ADODB连接Access数据库时遇到的80004005错误,包括错误原因分析和具体的解决步骤。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 最适合初学者的编程语言
    本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
  • 本文详细解析了MySQL中常见的几种错误,并提供了具体的解决方法,帮助开发者快速定位和解决问题。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
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社区 版权所有