Я намагаюся знайти будь-яку документацію про те, як 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 чітко показує, що вони пояснили.