SQL 服务器截断

SQL Server TRUNCATE

我对 TRUNCATE 命令有疑问。

TRUNCATE 如何在后台工作?

我读到一篇文章说 TRUNCATE 从 table 创建一个副本,然后开始删除 table 的所有行。正确吗?

根据 here

中的信息

TRUNCATE 记录数据所在的数据页的重新分配 exists 这意味着您的数据行实际上仍然存在于数据页中,但范围已被标记为空以供重用。这是什么 使 TRUNCATE 比 DELETE 执行得更快。

您不能截断具有任何外键的 table 约束。您将不得不删除约束,截断 table,并重新应用约束。

TRUNCATE 会将所有标识列重置为默认种子 价值。这意味着如果您有一个带有标识列的 table 并且 你有 264 行,种子值为 1,你的最后一条记录将有 标识中的值 264(假设您以值 1 开始) 列。在截断你的 table 之后,当你插入一个新的 记录为空 table,标识列的值为 1