CREATE TABLE TestTab (ID INT IDENTITY(1,1), st nvarchar(100))
INSERT INTO TestTab (st) values ('a')
INSERT INTO TestTab (st) values ('b')
INSERT INTO TestTab (st) values ('c')
INSERT INTO TestTab (st) values ('d')
INSERT INTO TestTab (st) values ('e')
INSERT INTO TestTab (st) SELECT TOP 10000 st from testtab
GO 30
ALTER TABLE TestTab ADD newcol nvarchar(10) DEFAULT 'newcol'
UPDATE TestTab SET newcol = 'newcol' --6 sec
ALTER TABLE TestTab ADD newcol1 nvarchar(10) DEFAULT 'newcol1' NOT NULL
DROP TABLE TestTab
Quando executo esse script de teste, o ALTERcomando UPDATEleva 6 segundos, o que é compreensível.
No entanto, o ALTERcom o DEFAULT NOT NULLexecuta instantaneamente, mesmo em uma tabela muito maior. Existe alguma explicação sobre por que isso é instantâneo? No disco físico, os dados ainda precisam ser gravados em todas as linhas, certo?
Tentei examinar SET STATISTICS IO ONe o plano de consulta, no entanto, esses não parecem estar disponíveis para operações DDL.

