ms sql 服务器会在自动递增模式下重用已删除的主键吗?

will ms sql server reuse deleted primary keys in auto increment mode?

假设我的 table 中有 100 行,我的主键是整数,它会从 1 自动递增 1。我合并我的数据并在行 ID 达到 100 时清除 table, SQL 服务器会重用删除的主键吗?

因为主键是自增1,如果上面问题的答案是否定的,那么下一次插入会发生什么,一旦主键达到了'Int'可以容纳的最大可能数?

MSSQL 将不会重新使用已使用 DELETE 删除的主键(我假设您正在谈论 identity 增量。)如果您 TRUNCATE table 它将重置种子并重新使用它们。

如果您超过 INT 的最大值,它确实会无法进入下一行。您可以将 INT 列转换为 BIGINT 以避免这种情况。

BIGINT 的最大值为:9,223,372,036,854,775,807 并且 INT 的上限为 2,147,483,647 但请注意.. 您也可以使用这些负值!

您可以在此处阅读有关这些上限的信息:https://docs.microsoft.com/fr-fr/sql/t-sql/data-types/int-bigint-smallint-and-tinyint-transact-sql?view=sql-server-2017

不,SQL 服务器不会重复使用 ID。如果您有 100 条 ID 从 1 到 100 的记录并将它们全部删除,则下一个插入的行将具有 ID = 101。

但是如果删除后想从1开始,可以使用这个命令:

DBCC CHECKIDENT('TableName', RESEED, 0)

它将重新植入您的身份并使其从 1 重新开始。

这取决于你的意思

I...clear the table once row id reaches 100

如果您要发出 DELETE 语句,则不会,标识列将在下一次插入时发出 101

如果您发出 TRUNCATE TABLE 语句,那么是的,table 将在下一次插入时重新播种到 1(或任何您的种子值)。