当前位置: 首页 > 面试题库 >

在SQL Server中删除记录后重置身份种子

谭嘉容
2023-03-14
问题内容

我已将记录插入到SQL Server数据库表中。该表已定义了主键,并且自动增量标识种子设置为“渊”。这样做主要是因为在SQL
Azure中,每个表都必须定义一个主键和标识。

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

删除记录后如何重置标识列,以便该列按升序排列?

标识列不用作数据库中任何地方的外键。


问题答案:

DBCC CHECKIDENT管理命令用来复位身份计数器。命令语法为:

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

例子:

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

早期版本的Azure SQL数据库不支持此功能,但现在支持。



 类似资料:
  • 问题内容: 在SQL Server 2008 Express中删除行后,是否可以重用标识字段值?这是一个例子。假设我有一个带有ID字段作为主键(身份)的表。如果添加五行,则将具有以下5个ID:1、2、3、4、5。如果删除这些行,然后再添加五行,则新行将具有ID:6、7、8, 9,10.是否可以让它从1重新开始? 为此,我是否必须从另一个表中删除数据?谢谢你的帮助。 问题答案: 您可以使用以下设置I

  • 本文向大家介绍ORACLE查询删除重复记录三种方法,包括了ORACLE查询删除重复记录三种方法的使用技巧和注意事项,需要的朋友参考一下 比如现在有一人员表 (表名:peosons) 若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来 可以实现上述效果. 几个删除重复记录的SQL语句 1.用rowid方法 2.用group by方法 3.用distinct方法 1。用rowid方法 据据or

  • 问题内容: 请帮助我了解基于rownum的删除记录,即使id重复,也不会发生,但是如果是这样的话。 查询已尝试,但删除所有6行。 但是此查询给出正确的结果: 预期结果 : 问题答案: 使用 当然,您也可以这样做。该所以你是否删除具有较大的行或较小的地址不要紧只是该行的物理地址。 但是,您的预期结果没有任何意义。 该结果集的总是在查询时分配。这意味着在不同的查询中(或同一查询多次运行时)特定的行可能

  • 本文向大家介绍sql 删除表中的重复记录,包括了sql 删除表中的重复记录的使用技巧和注意事项,需要的朋友参考一下 遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢 如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) 然后就可以直接删除,基本原理就是,找到重复记录的每一条记录,排除掉重复id最小的记录,删除剩余的重复

  • 问题内容: 请考虑下表: 我认为记录{1,2,A}和{2,1,A}是重复的。我需要选择并产生以下记录集: 我尝试了以下查询。但无济于事。 甚至这个: 两者都不起作用。 该数据库将为Oracle 10g。寻找纯SQL解决方案。感谢您的帮助。 问题答案: 使用GREATEST()和LEAST()函数来识别多个列中的公共值。然后使用DISTINCT清除重复项。 这样可以为您提供精确的记录集。但是,如果您

  • 这是我的原始表格: 预期表: 我无法向表中添加新列。