sqlserver主键自增
建表,主键自增
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主键自增相关推荐
- SQLSERVER数据库设置varchar类型主键自增方法
.NET自带生成主键的方法:Guid生成方法,Guid.NewGuid(); SqlServer数据库中: select NEWID() 生成32位长度的字符串主键,在数据库中设置主键自增的方法如下图
- SQLServer数据库设置主键和主键自增
在想要设置主键的那一行,右击就会出现如下图所示的页面,点击设置主键 如何设置主键自增 在设计表的页面的下方,有一个标识规范,(是标识),后面点击是,默认是否,就可以了
- mybatis 实现oracle主键自增的机制
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...
- oracle 创建表定义主键,Oracle 学习----:创建表(主键自增)
一.创建表 create table testTable ( Id numbere, name varchar2(100), age number, createTime date, primary ...
- 【Qt】使用sqlite3数据库时,主键自增和获取自增后的主键的
创建数据表格,设置主键自增 创建数据库时,启用主键自增加特性 Create table testTable (id INTEGER PRIMARY KEY AUTOINCREMENT,.... 注意事 ...
- postgre 没有主键自增ma_PostgreSQL 主键自增解决方案
因为工作需要,接触到了PostgreSQL,遇到了主键自增的情况 8.1.4. Serial Types 数据类型serial和bigserial不是真正的类型,而只是用于设置唯一标识符列的符号方便( ...
- 用tirgger实现主键自增(trigger+sequence)
用tirgger实现主键自增: create table book (bid number(4) primary key, bname varchar2(20) ) create sequence b ...
- insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成
点击上方蓝字关注我们 1 01 前言 前阵子和朋友聊天,他说他们项目有个需求,要实现主键自动生成,不想每次新增的时候,都手动设置主键.于是我就问他,那你们数据库表设置主键自动递增不就得了.他的回答是他 ...
- 数据库 MySQL 如何设置表的主键自增起始值
文章目录 表已有数据,truncate 之后再设置 auto_increment,可行 表已有数据,delete from 之后再设置 auto_increment,可行 主键自增起始值重置 查询表名 ...
最新文章
- 扔掉源码,15张图带你彻底理解java AQS
- 你知道我今天为什么来公司上班吗?
- unity发布webgl 触摸控制和鼠标控制冲突问题解决
- 设计模式 -- (7)外观模式
- 设计模式7----代理模式
- Nulgrind:最小的Valgrind工具
- Does Oracle Goldengate support Parallel DML?
- PTA是什么?BT-WIFI共存 转帖
- 26. 面向对象程序设计
- Java中对象的直接赋值、浅拷贝及深拷贝的理解和应用场景及其实现方式
- windows10上Eclipse运行MapReduce wordcount程序遇到的坑
- react-native修改android包名-上传应用市场
- 傲梅分区助手克隆Linux硬盘,傲梅分区助手复制磁盘或克隆磁盘到另外磁盘
- 论mybatisPlus 连表插件(MPJBaseMapper) 与自定义SQL注入器冲突
- linux 脚本 pause,Linux Shell脚本pause命令
- Ant Design 省市区联动数据
- 按钮英文字母大小写-默认样式修改-vuetify
- (三十六)Delta中性对冲与Delta-Gamma中性对冲
- 技术实验—使用selenium打开百度搜索关键字
- 求一百个人中有人生日相同的概率