gpt4 book ai didi

sql-server - SQL Server - 更新表中的行时会发生什么?

转载 作者:行者123 更新时间:2023-12-02 22:32:06 26 4
gpt4 key购买 nike

我似乎记得,当更新表中的一行时,SQL Server 首先删除该行,然后重新添加该行,并且如果存在这样的列,则该列具有相同的 Identity 值。谁能证实这一点?

最佳答案

错误。在大多数情况下,数据会在同一页面内就地更改。使用 SQL Server 2008,您实际上可以询问数据驻留在磁盘上的位置,这将揭示尽可能多的信息。

现在实际查看后,我收回所有内容:

http://www.sqlskills.com/BLOGS/PAUL/category/On-Disk-Structures.aspx

这可以在 SQL Server 2008 上轻松测试。(从链接文章修改代码)

CREATE TABLE test (c1 INT, c2 VARCHAR (2000));
GO
CREATE CLUSTERED INDEX test_cl ON test (c1);
GO
CHECKPOINT;
GO
INSERT INTO test VALUES (1, REPLICATE ('Paul', 500));
GO
CHECKPOINT;
select %%physloc%%, * from test -- 0x3E01000001000000
GO
UPDATE test SET c1 = 2 WHERE c1 =1;
GO
select %%physloc%%, * from test -- 0x3E01000001000100
^
|
notice it has changed location

关于sql-server - SQL Server - 更新表中的行时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com