我正在努力寻找有关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清楚地显示了他们的解释。