一、修改标识列值实例
- 创建表添加标识列
--创建表
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。