Saya berjuang untuk menemukan dokumentasi tentang bagaimana SQL Server benar-benar menyimpan kolom yang dikomputasi non-persisten.
Ambil contoh berikut:
--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
Saya mendapatkan bahwa itu disimpan pada tingkat daun, tetapi jika nilainya tidak bertahan bagaimana bisa disimpan? Bagaimana indeks membantu SQL Server menemukan baris ini dalam situasi ini?
Setiap bantuan sangat dihargai,
Terimakasih banyak,
EDIT:
Terima kasih kepada Brent & Aaron untuk menjawab ini, inilah PasteThePlan dengan jelas menunjukkan apa yang mereka jelaskan.