sqlserver主键自增的实现示例
作者:无极大帝 发布时间:2024-01-16 22:41:10
标签: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 (‘赵七',‘女');
来源:https://blog.csdn.net/mingwulipo/article/details/88553158
0
投稿
猜你喜欢
- 分析摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译。它以电报发明者Samuel
- 基本语句结构if 判断条件1: 执行语句1……elif 判断条件2:
- 1. 环境准备1.1 安装pillow 和 pytesseractpython模块库需要 pillow 和 pytesseract 这两个库
- 一、Tornado简介Tornado 是 FriendFeed 的 Web 服务器及其常用工具的开源版本。Tornado 和现在的主流 We
- 1.MTV开发模式介绍M:Models 模型(数据)与数据组织相关的功能。组织和存储数据的方法和模式,与数据模型相关的操作。T:Templa
- PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Proje
- 有2个方法 一、可以修改my.ini 配置参数(linux下面是 my.cnf); [quote][client] port=3306 de
- 如下所示:import numpy as npimport pandas as pdfrom pandas import Sereis, D
- 前戏有时候生产环境是以项目来命名,有时候会出现更名情况,其实如何安全的更改数据库名,是个非常棘手的问题,特别是针对 MySQL 来数据库来说
- pydbclib是一个通用的python关系型数据库操作工具包,使用统一的接口操作各种关系型数据库(如 oracle、mysql、postg
- 目录1.celery异步消息队列介绍celery应用举例Celery有以下优点Celery 特性2.工作原理 *****Celery 扮演生
- 代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001&quo
- 这些日子,几乎每个人都在谈论XML (Extensible Markup Language),但是很少有人真正理解其含义。XML的推崇者认为
- 阅读上一章:Chapter 4 引用互动性一直是互联网的重点,让使用者与网站能够交换信息,彼此沟通.表单使我们能够有组织的,使用同一方式的从
- 导语昨天看到有留言竟然说我是月更博主,我明明更新地这么勤快(心虚.jpg)。看吧,昨天刚更新过,今天又来更新了。今天还是带大家写个小游戏吧,
- 有多少次你在考虑怎样设置数据库时感到为难?其实,如果你在Linux上使用MySQL,就不会有这种情况了。在Linux上使用Webmin图形界
- 1、绘制简单曲线图思路:通过3个坐标点,绘制曲线import matplotlib.pyplot as plt plt.plot(
- 前言最近组长安排着做一个项目,h5的应用下载项目,想着做起来还是比较容易,可是看到提出的需求,我就有点懵逼了!需要对应用的下载进行统计!!!
- 前言喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事
- 本文实例讲述了js实现鼠标感应向下滑动隐藏菜单的方法。分享给大家供大家参考。具体实现方法如下:<html><head>