SQL Server – Que se passe-t-il lorsqu'une ligne d'une table est mise à jour?

Il me semble me callbacker que lorsqu'une ligne d'une table est mise à jour, SQL Server supprime d'abord la ligne, puis rajoute la ligne, avec la même valeur d'identité pour une colonne, si une telle colonne existe. Quelqu'un peut-il confirmer cela?

Faux. Les données sont modifiées sur place, dans la même page dans la plupart des cas. Avec SQL Server 2008, vous pouvez réellement interroger où datatables résident sur le disque, ce qui en révélera autant.

Après l'avoir regardé maintenant, je prends tout cela:

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

Cela peut être facilement testé sur SQL Server 2008. (code modifié à partir d'un article lié)

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