当前位置:  数据库>sqlserver

SQL Server自动获取编号字段的方法

    来源: 互联网  发布时间:2014-08-29

    本文导语:  ①像Access中的自动编号字段 右键表-->设计表-->找到你的id字段(类int型)-->标识-->是-->标识种子(初始值)-->标识递增量-->OK ②用IDENTITY (SEED,INCREMENT)参数   代码示例:   seed -启始值   increment -增量   CREATE TABLE 表名(   ...

①像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 < collation_name > ]
  [ NULL | NOT NULL ]
  | {ADD | DROP } ROWGUIDCOL }
  ]
  | ADD
  { [ < column_definition > ]
  | column_name AS computed_column_expression
  } [ ,...n ]
  | [ WITH CHECK | WITH NOCHECK ] ADD
  { < table_constraint > } [ ,...n ]
  | DROP
  { [ CONSTRAINT ] constraint_name
  | COLUMN column } [ ,...n ]
  | { CHECK | NOCHECK } CONSTRAINT
  { ALL | constraint_name [ ,...n ] }
  | { ENABLE | DISABLE } TRIGGER
  { ALL | trigger_name [ ,...n ] }
  }
  < column_definition > ::=
  { column_name data_type }
  [ [ DEFAULT constant_expression ] [ WITH VALUES ]
  | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]
  ]
  [ ROWGUIDCOL ]
  [ COLLATE < collation_name > ]
  [ < column_constraint > ] [ ...n ]
  < column_constraint > ::=
  [ 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 )
  }
  < table_constraint > ::=
  [ 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只是在< column_definition >中,也就是说,我们可以这样使用
  Alter Table 表名 Add 字段名 Int IDENTITY(1,1)
  即,可以增加一个字段并指定它为自动编号字段。但是不能更改一个字段为自动编号字段(也或许我没找到方法)。即,如果我们想给表增加自动编号字段,只能使用添加字段的方法,而不能更改一个已有的字段为自动编号字段。

如果需要更改自动编号字段计数起始值可以使用DBCC命令:
  DBCC CHECKIDENT (表名,RESEED,100)
自动编号字段下一个从101开始计。


    
 
 

您可能感兴趣的文章:

  • SQL字符型字段按数字型字段排序实现方法
  • 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
  • sql添加字段与刪除字段的方法
  • sql 查询所有数据库、表名、表字段的代码
  • 请问如何取出SQL数据库里某表某字段的description内容
  • SQL SERVER如何判断某个字段包含大写字母
  • 如何成功读取并显示SQL数据库中image类型字段?
  • 100分求教,如何读取sql server 2000下的Ntext字段的内容,急~~~
  • sql修改字段长度(练习)
  • 小女子请求各位帮忙,为什么读取不了sql server 2000的image字段?
  • 一条SQL语句修改多表多字段(多表更新)
  • mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法
  • Sql添加删除字段,判断字段是否存在的方法示例
  • 获取sql server表中的所有列字段名称的方法
  • sql server中添加字段、删除字段、修改字段说明
  • SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值
  • sql 插入单引号、添加、删除字段的例子
  • 获取SQL Server表字段的各种属性的sql语句
  • 在jsp中,如何来提取sql7.0中的时间字段,急急!!!!
  • SQL-ORDER BY 多字段排序(升序、降序)
  • 用sql获取SQL Server中连接的客户端IP地址
  • sql server 使用ntile获取数据的例子
  • 获取SQL Server2014的安装时间
  • 获取sql server数据字典的sql语句
  • SQL语句去掉重复记录,获取重复记录
  • sql语句获取数据库服务器上所有数据库的名字
  • sql server 获取TEXT字段的内容长度的方法参考
  • sql语句获取分组排序后数据
  • sql中获取分组排序后数据方法实例
  • sql server获取月份名称缩写的代码
  • sql获取分组排序后数据的脚本
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 推荐SQL Server 重新恢复自动编号列的序号的sql代码
  • SQL2000能不能够象Access2000那样自动编号?(用触发器行不行?如何做?)
  • SQL Server 不删除信息重新恢复自动编号列的序号的方法
  • sql面试题(查看自动编号数据中指定几行记录)
  • sql server触发器学习总结及自动编号的例子
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • java命名空间java.sql接口resultsetmetadata的类成员方法: getcolumntype定义及介绍
  • 微软网站下载的Ms SQL Server2000 JDBC Driver,必须用英文版的SQL server2000吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3