1.CREATE   TABLE   表名(   
  字段名   [int]   IDENTITY   (1,   1)   NOT   NULL   ,    //--(seed = 1,increment = 1) 從1開始,每次遞增1 
  ...   
  )

2.在SQL   SERVER中,所有整数类型的列都可以定义成自增长列,叫作“标识”,   
  它通过设定“标识种子”和“标识递增量”来实现功能。   
  列如:   
    
          列         类型               标识       标识种子       标识递增量   
        ----       -------       ----       -------       ----------   
        test         tinyint         √               1                     1   
    
      当你插入一行后,会从1开始自动的赋值。(1、2、3、4……255)   
      
  方法为:   
      1、选中表;   
      2、右击鼠标,设计;   
      3、选中列(整数类型)   
      4、设定标识为“是“(默认为“否”)、标识种子和标识递增量(一般为1)。

3.给定指定值自增

  1).当数据库表字段的列设置为自增列后,不能人为改变自增列的值

  2).但有时候在导数据或公用配置过程中,有些基础设置的值是不变的或者是固定,这样在新起项目或导数据时会出现问题。

  怎么才能修改自增列的值,让导入的数据按我们指定的值存放呢,  

  3).下面介绍一种简单的数据设置方法:

  IDENTITY_INSERT

  参数:ON(开始) OFF(结束)

  注:此方法只可插入新值,仍然不能修改原有Identity列的值

  示例:

SET IDENTITY_Insert TestTABLE ON
insert TestTABLE(IDENTITYID,Code,XX,XX)
VALUES(43,'','xx','xx');
SET IDENTITY_INSERT TestTABLE OFF

说明:

TestTable:数据库表名

IDENTITYID:自增列字段

这样我们就可以轻松进行数据导入,或写入指定值的数据了

4、取自增最新值

SELECT IDENT_CURRENT('tablename') + IDENT_INCR('tablename') as newid

IDENT_CURRENT( 'table_name' ) 返回为指定的表或视图生成的最后一个标识值。所生成的最后一个标识值可以针对任何会话和任何作用域。

SCOPE_IDENTITY 返回插入到同一作用域中的标识列内的最后一个标识值。一个范围是一个模块:存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。

IDENT_INCR ( 'table_or_view' ) 返回增量值(返回形式为 numeric (@@MAXPRECISION,0)),该值是在带有标识列的表或视图中创建标识列时指定的。

SQL server-自增主键的更多相关文章

  1. SQL server 自增主键重新从1开始

    原文链接:http://blog.csdn.net/zhengjia0826/article/details/43149953 dbcc checkident('sys_common_switch', ...

  2. sql server 2000 单主键高效分页存储过程 (支持多字段排序)

    sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage             /*              nzperfect [ ...

  3. SQL Server 2008设置主键为自增

    环境:SQL Server 2008 问题:设置主键,将主键设为自增. 解决:点击table->选中表->design->选中需要设置主键的字段,单击右键"设置主键&quo ...

  4. 何查询SQL Server数据库没有主键的表并增加主键

    SQL Server数据库中,如果一个表没有主键,我们该如何查询呢?本文我们主要就介绍了如何查询数据库中没有主键的表名并为其增加主键的方法,希望能够对您有所帮助. 该功能的实现代码如下: declar ...

  5. SQL Server 数据库添加主键,唯一键,外键约束脚本

    -- 声明使用数据库use 数据库;go -- 添加主键(primary key)约束-- 基本语法-- 判断主键约束是否存在,如果存在则删除,不存在则添加if exists(select * fro ...

  6. SQL Server 查询表的主键的两种方式

    方式1: select b.column_name from information_schema.table_constraints a inner join information_schema. ...

  7. 杜绝网上压根没测过就乱写之 《oracle mybatis 返回自增主键 》

    面试过好多人,包括自己也属于这么一个情况: 遇到问题直接去网上查,一般都可以查到解决方案.其中也包括一些基本的面试资料的答案. 其实有很多答案也都是正确的,但是还是存在一些压根就是胡乱抄来的答案,也不 ...

  8. (转)Mybatis高级映射、动态SQL及获得自增主键

    原文:http://www.cnblogs.com/edwinchen/p/4105278.html?utm_source=tuicool&utm_medium=referral 一.动态SQ ...

  9. Mybatis高级映射、动态SQL及获得自增主键

    一.动态SQL 相信大家在用mybatis操作数据库时时都会碰到一个问题,假如现在我们有一个关于作者的list authorList,需要根据authorList里已有的作者信息在数据库中查询相应作者 ...

  10. SQL:自增主键的获取@@IDENTITY 和 SCOPE_IDENTITY 的区别

    @@IDENTITY 返回当前会话所有作用域的最后一个ID SCOPE_IDENTITY() 返回当前作用域的最后一个ID 返回上面语句执行后产生的自增主键,这个是目前最可靠的方式: insert i ...

随机推荐

  1. GTD实用指南(转载)

    时间管理第一层:记录每日时间开支,认识自己的时间黑洞.你会惊讶地发现,每天的无意义时间很可能在70%以上. [避开时间黑洞的小策略:1.彻底关闭聊天工具:2.关掉邮件的到达提醒功能:3.保持办公环境的 ...

  2. layer弹窗的操作方法

    1.首先去http://layer.layui.com/下载插件 2.在网站上有演示说明 3.操作方法如何 <script src="../js/layer/layer.js" ...

  3. 多线程-wait/notify/notifyAll

    引言 在Java中,可以通过配合调用Object对象的wait,notify和notifyAll来实现线程间的通信. 在线程中调用wait方法,将阻塞带带其他线程的通知(其他线程调用notify或no ...

  4. @property (nonatomic,retain)中的nonatom和retain的意思

    转自:http://yuanshoupeng2005.blog.163.com/blog/static/68235027201235113952886/ http://baike.baidu.com/ ...

  5. config.sql

    # mysql服务器注释支持# #到该行结束# -- 到该行结束 # /* 行中间或多个行 */ drop database if exists db_warehouse;create databas ...

  6. Log4j1.x初识

    初识log4j1.x 研究源码首先要对项目要有整体的认识,这一章节主要让大家对log4j1.x有一个整体的认识,并以此为切入点,认识log4j1.x的真个框架 1 整体认识 先整体上对log4j1有一 ...

  7. 免安装Oracleclient和PL/SQL

    写在前面: Oracle是典型的C/S结构,服务端提供oracle服务的实例,主要用于数据库的管理,对象的管理与存储.数据的 存储.查询.数据库资源的监控.监听等一些服务. 而client仅仅是一个与 ...

  8. powerDesigner建表时选择不同数据库类型

    l  使用powerDesigner创建表模型的时候可选择数据库类型 如图设置为mysql:

  9. redux-effect

    npm install --save redux-effect 通过redux中间件的方式使async方法可以在redux中使用. 如果你使用redux-saga,应该非常容易上手redux-effe ...

  10. Android Intent 用法全面总结(转载)

    1. [代码]调用拨号程序 1 2 3 4 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent intent = ...