irpas技术客

sql server 数据库 设置id 自增_vegetari_sql自增id

网络投稿 2868

目录

一,建表时设置

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语句,完成后将生成数据插入我们修改后的表。然后在将修改后的表改成生产表的名称。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #sql自增id #SQL #Server #建表时二建表后设置