sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server:¿qué sucede cuando se actualiza una fila en una tabla?

Falso. Los datos se cambian en su lugar, dentro de la misma página en la mayoría de las circunstancias. Con SQL Server 2008, puede realmente interrogar dónde residen los datos en el disco, lo que lo revelará.

Habiéndolo visto ahora, lo retiro todo:

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

Esto se puede probar fácilmente en SQL Server 2008. (código modificado del artículo vinculado)

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