Estou com dificuldades para encontrar qualquer documentação sobre como o SQL Server realmente armazena uma coluna computada não persistente.
Veja o seguinte exemplo:
--SCHEMA
CREATE TABLE dbo.Invoice
(
InvoiceID INT IDENTITY(1, 1) PRIMARY KEY,
CustomerID INT FOREIGN KEY REFERENCES dbo.Customer(CustomerID),
InvoiceStatus NVARCHAR(50) NOT NULL,
InvoiceStatusID AS CASE InvoiceStatus
WHEN 'Sent' THEN 1
WHEN 'Complete' THEN 2
WHEN 'Received' THEN 3
END
)
GO
--INDEX
CREATE NONCLUSTERED INDEX IX_Invoice ON Invoice
(
CustomerID ASC
)
INCLUDE
(
InvoiceStatusID
)
GO
Eu entendo que ele é armazenado no nível da folha, mas se o valor não for persistente, como algo é armazenado? Como o índice ajuda o SQL Server a encontrar essas linhas nessa situação?
Qualquer ajuda muito apreciada,
Muito Obrigado,
EDITAR:
Obrigado a Brent & Aaron por responderem, aqui está o PasteThePlan mostrando claramente o que eles explicaram.