比方说,你要创建一个表user_info,设置的主键名称是user_id,那么可以如下设置:
创新互联建站主营太康网站建设的网络公司,主营网站建设方案,app软件定制开发,太康h5成都小程序开发搭建,太康网站营销推广欢迎太康等地区企业咨询
create
table
user_info
(user_id
int
primary
key
identity(1,1),//主键初值为1,每次自增1,数值可变化,但要符合之前定义的类型
user_name
varchar(20)
not
null,
....
)
希望能帮到你!~
SqlServer有3种方式设置自增列,
SSMS中在图形化界面中建表时,设置自动增长的其实值及每次增量。
2. --语句建表时设置自增列,从1开始增长,每次增加1
create table test(col1 int indentity(1,1,))。
3. --修改列为从1开始增长,每次增加10
alter table test alter col1 int indentity(1,10)。
操作
1、创建一个表 movie,设置字段 id 具有 identity(1,1),
注:identity(start,step),中的参数start表示从start开始标号,step表示每次递增的步长数量
2、当我们进行插入操作的时候,便会报如下的错误;
注:mysql 上是可以这么操作的;
3、解决方法是,在使用前添加一句
SET IDENTITY_Insert movie ON;
注:SET IDENTITY_Insert table switch 表示是否允许table表中的
identity 字段的插入操作,On表示允许,Off表示不允许
4、有时候为了安全性,会习惯性的在操作前,允许,操作后不允许:
5、注:mssql 目前只允许同时只对一张表进行
SET IDENTITY_Insert table ON;
操作,所以如果考虑到在不同的表之间进行操作的话,
需要先把前一张表给OFF 掉;
identity值
查看当前表的indentity的值:
dbcc checkident(table, NORESEED)
其中 table 表示的要查看的表, NORESEED表示不会修改该值,
如下图查询到的结果是3
修改当前表的 identity 的值
dbcc checkident(table,RESEED,value)
其中:
table 表示的是要修改的表;
RESEED 表示的是identity的值会被修改;
value 表示的是修改后的值;
如下图所示,是把值修改成1后,查询的结果:
1.新建一数据表,里面有字段id,将id设为为主键
create table tb(id int,constraint pkid primary key (id))
create table tb(id int primary key )
2.新建一数据表,里面有字段id,将id设为主键且自动编号
create table tb(id int identity(1,1),constraint pkid primary key (id))
create table tb(id int identity(1,1) primary key )
3.已经建好一数据表,里面有字段id,将id设为主键
alter table tb alter column id int not null
alter table tb add constraint pkid primary key (id)
4.删除主键
Declare @Pk varChar(100);
Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('tb') and xtype='PK';
if @Pk is not null
exec('Alter table tb Drop '+ @Pk)
一、通过T-SQL代码.
alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL
这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1
sqlserver有3种方式设置自增列,
1.
ssms中在图形化界面中建表时,设置自动增长的其实值及每次增量
2.
--语句建表时设置自增列,从1开始增长,每次增加1
create
table
test(col1
int
indentity(1,1,))
3.
--修改列为从1开始增长,每次增加10
alter
table
test
alter
col1
int
indentity(1,10)