COMPUTED COLUMS ve PERSISTED PARAMETRESİ(Hesaplanmış Kolon)
SQL SERVER Computed Column Özelliği
Bu hesaplanmış alan PERSISTED ifadesi ile eklenmemişse veritabanında yer kaplamaz...
Fakat biz hesaplanmış kolonda index kullanmak istiyorsak persisted ile bu alanı eklememiz lazım..
CREATE TABLE dbo.Products
(
ProductID int IDENTITY (1,1) NOT NULL
, QtyAvailable smallint
, UnitPrice money
, InventoryValue AS QtyAvailable * UnitPrice
);
-- Insert values into the table.
INSERT INTO dbo.Products (QtyAvailable, UnitPrice)
VALUES (25, 2.00), (10, 1.5);
-- Display the rows in the table.
SELECT ProductID, QtyAvailable, UnitPrice, InventoryValue
FROM dbo.Products;
Veritabanına eklediğimiz InventoryValue alanı Computed Colums bir alandır..
InventoryValue AS QtyAvailable * UnitPrice bu alan QtyAvailable * UnitPrice alanların çarpmıdır.
Eğer bu alanı biz istersek table oluşturduktan sonra
ALTER
TABLE
dbo.Products ADD
InventoryValue
AS
QtyAvailable * UnitPrice
Şeklinde de ekleyebiliriz..
Eğer alanın veritabanında yer kaplamasını ve query sorguların daha hızlı olmasını istiyorsak
ALTER
TABLE
dbo.Products ADD
InventoryValue
AS
QtyAvailable * UnitPrice PERSISTED
ifadesini ise en sona ekleyebiliriz.
Konuyla ilgili detaylı açıklamları aşağıdaki bloglarda bulabilirsiniz..
En detaylı açıklama ve performans testi sonuçlarını sqlauthority sitesinde mevcut..
https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table
Hiç yorum yok