Я изо всех сил пытаюсь найти любую документацию о том, как SQL Server на самом деле хранит непостоянный вычисляемый столбец.
Возьмите следующий пример:
--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
Я получаю, что оно хранится на уровне листьев, но если значение не сохраняется, как что-либо хранится вообще? Как индекс помогает SQL Server найти эти строки в этой ситуации?
Любая помощь с благодарностью,
Большое спасибо,
РЕДАКТИРОВАТЬ:
Спасибо Brent & Aaron за ответ, вот PasteThePlan, ясно показывающий, что они объяснили.