如何在 SQL Server 数据库中添加 auto_increment 主键?

2023-07-17数据库问题
3

本文介绍了如何在 SQL Server 数据库中添加 auto_increment 主键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我设置了一个当前没有主键的表.我需要做的就是添加一个主键,不为空,auto_increment.

I have a table set up that currently has no primary key. All I need to do is add a primary key, no null, auto_increment.

我正在使用 Microsoft SQL Server 数据库.我知道它不能在单个命令中完成,但我尝试的每个命令都不断返回语法错误.

I'm working with a Microsoft SQL Server database. I understand that it can't be done in a single command but every command I try keeps returning syntax errors.

编辑 ---------------

edit ---------------

我已经创建了主键,甚至将其设置为非空.但是,我无法设置auto_increment.

I have created the primary key and even set it as not null. However, I can't set up the auto_increment.

我试过了:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment

我使用 NVARCHAR 因为它不允许我在 int

I'm using NVARCHAR because it wouldn't let me set NOT NULL under int

推荐答案

它可以在一个命令中完成.您需要为自动编号"设置 IDENTITY 属性:

It can be done in a single command. You need to set the IDENTITY property for "auto number":

ALTER TABLE MyTable ADD mytableID int NOT NULL IDENTITY (1,1) PRIMARY KEY

更准确地说,设置命名表级约束:

More precisely, to set a named table level constraint:

ALTER TABLE MyTable
   ADD MytableID int NOT NULL IDENTITY (1,1),
   CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)

请参阅 MSDN 上的ALTER TABLE and IDENTITY

See ALTER TABLE and IDENTITY on MSDN

这篇关于如何在 SQL Server 数据库中添加 auto_increment 主键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

Mysql目录里的ibtmp1文件过大造成磁盘占满的解决办法
ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致...
2025-01-02 数据库问题
151

按天分组的 SQL 查询
SQL query to group by day(按天分组的 SQL 查询)...
2024-04-16 数据库问题
77

SQL 子句“GROUP BY 1"是什么意思?意思是?
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

MySQL groupwise MAX() 返回意外结果
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)...
2024-04-16 数据库问题
13

MySQL SELECT 按组最频繁
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)...
2024-04-16 数据库问题
16

在 Group By 查询中包含缺失的月份
Include missing months in Group By query(在 Group By 查询中包含缺失的月份)...
2024-04-16 数据库问题
12