建表,主键自增

create table aaa(
id bigint identity(1,1) not null PRIMARY key,
name nvarchar(255)
);

navicat没办法给主键列,加identity,只能用sql建表

赋值时,identity列不能赋值,报错

一、identity的基本用法

1.含义
identity表示该字段的值会自动更新,不需要我们维护,通常情况下我们不可以直接给identity修饰的字符赋值,否则编译时会报错

2.语法
列名 数据类型 约束 identity(m,n)

m表示的是初始值,n表示的是每次自动增加的值

如果m和n的值都没有指定,默认为(1,1)

要么同时指定m和n的值,要么m和n都不指定,不能只写其中一个值,不然会出错

3.实例演示
不指定m和n的值

create table student1
(
sid int primary key identity,
sname nchar(8) not null,
ssex nchar(1)
)
insert into student1(sname,ssex) values (‘张三’,‘男’);
insert into student1 values (‘李四’,‘女’);–可以省略列名
insert into student1 values (‘王五’,‘女’);

指定m和n的值

create table student2
(
sid int primary key identity(20,5),
sname nchar(8) not null,
ssex nchar(1)
)
insert into student2(sname,ssex) values (‘张三’,‘男’);
insert into student2 values (‘李四’,‘女’);–可以省略列名
insert into student2 values (‘王五’,‘女’);

4.删除一条记录接着插入
把sid为2的记录删除,继续插入,新插入的记录的sid不是2,而是3

create table student3
(
sid int primary key identity,
sname nchar(8) not null,
ssex nchar(1)
)
insert into student3(sname,ssex) values (‘张三’,‘男’);
insert into student3 values (‘李四’,‘女’);
delete from student3 where sid=2;–把sid为2的记录删除
insert into student3 values (‘王五’,‘女’);

二、重新设置identity的值

1.语法
dbcc checkident(表名,reseed,n);

n+1表示的是表中identity字段的初始值(n的值可以为0)

也就是说:如果插入的是id为2的记录,则n的值是1

2.实例演示
create table student4
(
sid int primary key identity,
sname nchar(8) not null,
ssex nchar(1)
)
insert into student4(sname,ssex) values (‘张三’,‘男’);
insert into student4 values (‘李四’,‘女’);
delete from student4 where sid=2;–把sid为2的记录删除
dbcc checkident(‘student4’,reseed,1);–把student4表中identity字段的初始值重新设置为1
insert into student4 values (‘王五’,‘女’);

三、向identity字段插入数据

1.语法
set identity_insert 表名 on;
insert into 表名(列名1,列名2,列名3,列名4) values (数据1,数据2,数据3,数据4);
set identity_insert 表名 off;

注意:插入数据时必须得指定identity修饰的字段的名字

2.实例演示
create table student5
(
sid int primary key identity(20,5),
sname nchar(8) not null,
ssex nchar(1)
)
insert into student5(sname,ssex) values (‘张三’,‘男’);
insert into student5 values (‘李四’,‘女’);
insert into student5 values (‘王五’,‘女’);
set identity_insert student5 on;
/*
insert into student5 values (‘黑六’,‘男’);–error
insert into student5 values (21,‘黑六’,‘男’);–error
/
insert into student5(sid,sname,ssex) values (21,‘黑六’,‘男’);
set identity_insert student5 off;
/

insert into student5 values (22,‘赵七’,‘女’);–error
insert into student5(sid,sname,ssex) values (22,‘赵七’,‘女’);–error
*/
insert into student5 values (‘赵七’,‘女’);

sqlserver主键自增相关推荐

  1. SQLSERVER数据库设置varchar类型主键自增方法

    .NET自带生成主键的方法:Guid生成方法,Guid.NewGuid(); SqlServer数据库中: select NEWID() 生成32位长度的字符串主键,在数据库中设置主键自增的方法如下图

  2. SQLServer数据库设置主键和主键自增

    在想要设置主键的那一行,右击就会出现如下图所示的页面,点击设置主键 如何设置主键自增 在设计表的页面的下方,有一个标识规范,(是标识),后面点击是,默认是否,就可以了

  3. mybatis 实现oracle主键自增的机制

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...

  4. oracle 创建表定义主键,Oracle 学习----:创建表(主键自增)

    一.创建表 create table testTable ( Id numbere, name varchar2(100), age number, createTime date, primary ...

  5. 【Qt】使用sqlite3数据库时,主键自增和获取自增后的主键的

    创建数据表格,设置主键自增 创建数据库时,启用主键自增加特性 Create table testTable (id INTEGER PRIMARY KEY AUTOINCREMENT,.... 注意事 ...

  6. postgre 没有主键自增ma_PostgreSQL 主键自增解决方案

    因为工作需要,接触到了PostgreSQL,遇到了主键自增的情况 8.1.4. Serial Types 数据类型serial和bigserial不是真正的类型,而只是用于设置唯一标识符列的符号方便( ...

  7. 用tirgger实现主键自增(trigger+sequence)

    用tirgger实现主键自增: create table book (bid number(4) primary key, bname varchar2(20) ) create sequence b ...

  8. insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成

    点击上方蓝字关注我们 1 01 前言 前阵子和朋友聊天,他说他们项目有个需求,要实现主键自动生成,不想每次新增的时候,都手动设置主键.于是我就问他,那你们数据库表设置主键自动递增不就得了.他的回答是他 ...

  9. 数据库 MySQL 如何设置表的主键自增起始值

    文章目录 表已有数据,truncate 之后再设置 auto_increment,可行 表已有数据,delete from 之后再设置 auto_increment,可行 主键自增起始值重置 查询表名 ...

最新文章

  1. 日志分析利器splunk的搭建、使用、破解
  2. JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
  3. 减治求有重复元素的全排列
  4. 华为机试HJ62:查找输入整数二进制中1的个数
  5. PHP 使用session实现购物车效果(点击按钮添加数据,根据数据生成列表,删除选中的商品,点击按钮时计算金额)
  6. 机器学习项目-金融反欺诈模型
  7. python实现排序算法lowb三人组之插入排序
  8. 仿企查查php源码,企查查企业信息页面精简工具
  9. Py之shap:shap.explainers.shap_values函数的简介、解读(shap_values[1]索引为1的原因)、使用方法之详细攻略
  10. 经典兔子问题(又名斐波那契数列)
  11. python列表(list)
  12. VMware 网络环境配置(win7系统)
  13. 医美整形机构业务流程讲解
  14. android方案公司,生产解决方案
  15. Quantopian投资组合和绩效分析工具:Pyfolio
  16. 网页外链微信公众号文章里的图片显示未经许可无法显示的解决办法
  17. altair 8800_Python数据可视化场景的戏剧性浏览(包括ggpy和Altair)
  18. Vue——vue3+ts
  19. 【农业科研进展】小麦白粉病与植物叶部病害监测识别
  20. excel的偏移函数offset与对应相乘函数sumproduct

热门文章

  1. 计算机网络---UDP协议与TCP协议
  2. 【零基础学Java】—抽象方法和抽象类(二十二)
  3. linux 词霸,Linux中的词霸
  4. php门面理解,php 门面模式(外观模式)
  5. activiti表单设计器_基于Vue,ElementUI开发的一款表单设计器
  6. 小米MIX4曝光,颜值真不错
  7. 地球绕太阳一圈有多远
  8. 脚艺人什么意思,网络上脚艺人什么梗,变身脚艺人意思
  9. 深圳很适合创业,无论小白造梦,或是落魄重生
  10. 海底捞、百果园、大娘水饺凭什么可以疯狂扩张门店?