我已将记录插入SQL Server数据库表中.该表定义了主键,并且自动递增标识种子设置为"是".这主要是因为在SQLAzure中,每个表都必须定义一个主键和标识.

但由于我必须从表中删除一些记录,这些表的标识种子将受到干扰,索引列(以1的增量自动生成)将受到干扰.

How can I reset the identity column after I deleted the records so that the column has sequence in ascending numerical order?

标识列不用作数据库中任何位置的外键.

推荐答案

DBCC CHECKIDENT管理命令用于重置标识计数器.命令语法为:

DBCC CHECKIDENT (table_name [, { NORESEED | { RESEED [, new_reseed_value ]}}])
[ WITH NO_INFOMSGS ]

例子:

DBCC CHECKIDENT ('[TestTable]', RESEED, 0);
GO

以前版本的Azure SQL数据库不支持它,但现在支持它.


多亏了Solomon Rutzky,命令的docs现在被修复了.

Sql相关问答推荐

PostgreSQL WHERE 子句如何在此查询中工作?

从 SQL Server 获取 JSON 形式的层次结构数据

如果其他行有子元素,如何避免选择没有子元素的父母行?

Postgres:冲突时,对两个向量(数组)求和

为基于另一个表的表中的每个条件选择前 n 个(变量)

Airflow PostgresHook 错误编解码器无法解码位置 3 中的字节 0xc3

如何按行对项目进行分组

多个复选框的数据模型

try 在 SQL Server 中显示包含开始和结束日期、工作时间和小时费率的员工工作详细信息时如何避免重复?

将不确定数量的行转换为列?

为什么这个转换为 DATETIME2?

dateadd 函数snowflake中的变量

MS Access VBA:向表中添加了列,但现在 SQL“INSERT INTO”不再起作用

SQL Server 中有 LastIndexOf 吗?

计算PostgreSQL中字符串中子字符串的出现次数

TypeError:元组索引必须是整数,而不是 str

SQL:一个查询中有两个选择语句

ORA-01791: 不是 SELECTed 表达式

如何使用复制命令在 postgres 中将数据从一个表复制到另一个表

在 Postgres 中将列拆分为多行