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
我对 TRUNCATE
命令有疑问。
TRUNCATE
如何在后台工作?
我读到一篇文章说 TRUNCATE
从 table 创建一个副本,然后开始删除 table 的所有行。正确吗?
根据 here
中的信息TRUNCATE 记录数据所在的数据页的重新分配 exists 这意味着您的数据行实际上仍然存在于数据页中,但范围已被标记为空以供重用。这是什么 使 TRUNCATE 比 DELETE 执行得更快。
您不能截断具有任何外键的 table 约束。您将不得不删除约束,截断 table,并重新应用约束。
TRUNCATE 会将所有标识列重置为默认种子 价值。这意味着如果您有一个带有标识列的 table 并且 你有 264 行,种子值为 1,你的最后一条记录将有 标识中的值 264(假设您以值 1 开始) 列。在截断你的 table 之后,当你插入一个新的 记录为空 table,标识列的值为 1