sql server建表时怎么设置ID字段自增

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server建表时怎么设置ID字段自增相关的知识,希望对你有一定的参考价值。

sql server建表时设置ID字段自增的方法有两种:

1 、在SQL Server Management Studio中实现SQL Server自增字段

打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,选“是”,就设定即可。

也可以在表的属性窗口中设置设置标识列:

2、使用SQL语句在程序或者查询分析器里面实现SQL Server自增字段

sql server 设置自增字段identity属性 (以新建数据表tablename中的id字段为例)

create table tablename      

(      

id int identity(1,1) //identity表示自增列的意思,而int identity(1,1)表示从1开始递增,每次自增1。

)     

这样设置之后,tablename数据表中的id字段就是自增列。

如果想实现带前缀或者后缀的自动增加字段,不能用varchar,还是使用上面的方法创建字段,但是在读取的时候用增加前后缀的形式来显示想要的效果,例如如果希望得出结果是a001可以这么做select \'a\'+convert(varchar(20),id) from tablename,这里的tablename是刚才建立的具体的表明。

参考技术A Create Table yourtable
(
id int identity(1,1),--这是自增id
name varchar(50) --这列写着耍的
)

 

在建表的时後可以对表作一些其他的设置,譬如:设定主键、外键关系、约束等

Create Table yourtable
(
id int not null Primary key  identity(1,1),--这是自增id,同时设置该列为主键
name varchar(50) check(''!=name ) --约定name值不可以是空字符串
)


要注意了,上面的建表语句name列没有写not null 只判断了不能是空字符串,但null是会通过的,因为null与任何值比较都是不等的

本回答被提问者采纳
参考技术B

在用sql语言建表的时候,用sql语句将自增写入代码中。

语句创建

create table table

name(id int identity(1,1),

其他字段

)

aql  server概述:

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。

sql server 数据库 设置id 自增

目录

一,建表时设置

1.1 建表时

1.1.1 通过可视化设置数据表主键自增

1.1.2 通过SQL语句 创建自增

二,建表后设置

 问题分析:

问题解决:


SQL server 设置列自增长

一,建表时设置

建表时有两种方式设置表自增

1.1 建表时

建表时有也有两种设置自增方式,第一种是通过可视化客户端设置数据表自增,第二种是通过SQL建表语句设置自增。

1.1.1 通过可视化设置数据表主键自增

1.1.2 通过SQL语句 创建自增

CREATE TABLE [dbo].[qc_project_flow_copy1] (
  [project_id] int  NULL,
  [flow_id] int  NULL,
  [status] int  NULL,
  [id] int  IDENTITY(1,1) NOT NULL,
  CONSTRAINT [PK__qc_proje__3213E83F636EBA21] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
ON [PRIMARY]
)  
ON [PRIMARY]
GO

ALTER TABLE [dbo].[qc_project_flow_copy1] SET (LOCK_ESCALATION = TABLE)
GO

EXEC sp_addextendedproperty
'MS_Description', N'项目ID',
'SCHEMA', N'dbo',
'TABLE', N'qc_project_flow_copy1',
'COLUMN', N'project_id'
GO

EXEC sp_addextendedproperty
'MS_Description', N'流程ID',
'SCHEMA', N'dbo',
'TABLE', N'qc_project_flow_copy1',
'COLUMN', N'flow_id'
GO

EXEC sp_addextendedproperty
'MS_Description', N'0为正在使用,1为未使用',
'SCHEMA', N'dbo',
'TABLE', N'qc_project_flow_copy1',
'COLUMN', N'status'
[id] int  IDENTITY(1,1) NOT NULL,

可以看到SQL 语句中的id 是自增。 

二,建表后设置

如果我们要在已经有了SQL server 数据表后,修改当前表的字段为自增,使用可视化客户端是不能操作的了,需要使用sql 语句来实现了。

ALTER TABLE [表名] DROP COLUMN ID
ALTER TABLE [表名] ADD ID INT IDENTITY(1,1)

但是我在实操的时候,执行上面的alter table [表名] DROP CLOUMN ID; 就会报下面这个问题

 问题分析:

        原因就是添加realname字段时设置了默认值,导致SQL Server给realname字段关联了'DF__users__realname__1A14E395'约束。只需要删除'DF__users__realname__1A14E395'约束,就可以删除realname字段了。

问题解决:

执行以下SQL语句删除'DF__users__realname__1A14E395'约束

ALTER TABLE users 
DROP CONSTRAINT DF__users__realname__1A14E395

这样就删除了字段了,然后在执行创建id sql 语句。

ALTER TABLE [表名] ADD ID INT IDENTITY(1,1)

注意:因为真实场景下,我们改动已经存在的表,该表可能已经在使用了,如果要执行删除列操作,会有数据丢失的可能,所以,我们在执行上述代码时,可以先创建一个表结构相同的表,然后执行上述SQL语句,完成后将生成数据插入我们修改后的表。然后在将修改后的表改成生产表的名称。

以上是关于sql server建表时怎么设置ID字段自增的主要内容,如果未能解决你的问题,请参考以下文章

sql server建表时怎么设置ID字段自增

sql server 数据库 设置id 自增

建表时,如何让mysql标识列ID从1开始自动增长

oracle一个表中没有主键怎么设置主键

sql server 2000 中怎么去掉 和 还原 自增字段

sql server中如何实现自增字段?