微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

解决方法

假.在大多数情况下,数据在同一页面内就地更改.使用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

原文地址:https://www.jb51.cc/mssql/83503.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐