文档章节

SqlServer标识列、修改标识列值

tianma3798
 tianma3798
发布于 2016/04/28 15:34
字数 595
阅读 120
收藏 0

一、修改标识列值实例

  1. 创建表添加标识列

--创建表
create table Student (
 Name nvarchar(100) not null
);
go
---添加数据
insert into Student values('张三');
insert into Student values('李四');
---添加标识列
alter table Student
add ID int identity(1,1);

2.插入标识列值

---设置标识列可自定义数据
set identity_insert Student on;
---添加数据(必须显示指定标识列)
insert into Student(Name,ID) values('王五',5);
---关闭按标识列插入数据
set identity_insert Student off;

3.强制设置标识列起始值

---强制标识列的起始值
DBCC CheckIdent(Student,RESEED,100);
insert into Student(Name) values('赵六');

二、标识列其他方法

---1.判断一个表是否有标识列 --1 有 --0没有
select OBJECTPROPERTY(object_Id('Student'),'TableHasIdentity');
---2.查询某表标识列的列名
select * from INFORMATION_SCHEMA.columns
where table_Name='Student' and ColumnProperty (
object_id('Student'),Column_Name,'IsIdentity'
)=1;
---3.查询标识列的引用
SELECT * FROM Student WHERE IDENTITYCOL=1
SELECT * FROM Student WHERE ID=1
---4.获取标识列的种子值
select IDENT_SEED('Student');
---5.获取标识列的增量
select IDENT_INCR('Student');
---6.获取指定表中最后生成的标示值
select IDENT_CURRENT('表');

三、标识列简介

1.标识列的定义以及特点

SQL Server中的标识列又称标识符列,习惯上又叫自增列。

该种列具有以下三种特点:

1、列的数据类型为不带小数的数值类型

2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值

3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。

由于以上特点,使得标识列在数据库的设计中得到广泛的使用。

2.标识列的组成

创建一个标识列,通常要指定三个内容:

1、类型(type)

在SQL Server 2000中,标识列类型必须是数值类型,如下:

decimal、int、numeric、smallint、bigint 、tinyint 

其中要注意的是,当选择decimal和numeric时,小数位数必须为零

另外还要注意每种数据类型所有表示的数值范围

2、种子(seed)

是指派给表中第一行的值,默认为1

3、递增量(increment)

相邻两个标识值之间的增量,默认为1。


© 著作权归作者所有

tianma3798
粉丝 15
博文 142
码字总数 41644
作品 0
济南
高级程序员
私信 提问
MSSQL 怎么修改 自增键 的 递增量(increment)?

MSSQL 怎么修改标识列 的 递增量(increment)

光石头
2010/06/09
900
6
小觑数据库(SqlServer)查询语句执行过程

近年来,越来越多的NoSql产品不断的以技术革命的者的身份跳出来:"你看哥是多么的快,你们关型型数据库真是战五渣阿"。是的,高性能的场景下NoSql真的很出彩。而我们关系型数据库只能在墙角哭...

Yunanw
2014/04/14
0
4
服务器级的urn筛选器无效:筛选器必须为空,或服务器属性必须等于实际的服务器名称

MSSQL导入数据迁移时遇到的几个问题Posted on 2017-11-15 10:35 hddk 阅读(775) 评论(0) 编辑 收藏 1.当sql server出现当 MUST_CHANGE 为 ON (开)时 取消账号强制策略时出现错误 当 MUSTCHAN...

rootliu
04/29
0
0
MySQL 添加列,修改列,删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 查看列:desc 表名; 修改表名:alter table tbook rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:...

蚂蚁也疯狂
2014/01/07
0
0
关于SqlServer的整形字段和空的查询

现象如下: 字段intType是整形的。 select * from Test where varcharType='test' and intType='' 可以查出 intType为0的记录。 update Test set dcr_times=''这时 Test的值为0。 关于 Orac......

晨曦之光
2012/06/07
151
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机网络

计算机网络体系结构 OSI 其中表示层和会话层用途如下: 表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。 会话层 :建立及管理会话。 五层...

一只小青蛙
今天
2
0
0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部