Hesaplanan sütunlar
hesaplanan sütun tarafından hesaplanan bir ifade aynı tabloya diğer sütunları kullanan.İfade noncomputed sütun adı, sabit, işlev ve bunlara bağlı bir veya daha çok işleç herhangi bir birleşimi olabilir.Alt sorgu ifade olamaz.
, Örneğin,AdventureWorksörnek veritabanı,TotalDueSales.SalesOrderHeader tablo sütun tanımı vardır: TotalDue AS Subtotal + TaxAmt + Freight.
Aksi belirtilmediği sürece, hesaplanan sütunlar, fiziksel olarak tabloda saklanan sanal sütun var.Her sorguda başvurulan değerleri yeniden hesaplanır.The Database Engine uses the PERSISTED keyword in the CREATE TABLE and ALTER TABLE statements to physically store computed columns in the table.Kendi hesaplamasının bir parçası olan tüm sütunları değiştirme değerleri güncelleştirilir.Hesaplanan bir sütun PERSISTED olarak işaretleyerek, deterministic ancak kesin olmayan hesaplanan sütun üzerinde dizin oluşturabilirsiniz.Ayrıca, bir CLR ilevi hesaplanan sütun başvuruları,Database Engineişlev belirli gerçekten olup olmadığını doğrulayamıyor.Üzerinde dizin oluşturulabilir; bu nedenle, bu durumda, hesaplanan sütun kalıcı gerekir.Daha fazla bilgi için bkz: Hesaplanan sütunlar üzerinde dizin oluşturma.
Not
Herhangi bir hesaplanan sütun bölümlenmiş bir bölümleme olarak kullanılan sütunlar tablo açıkça kalıcı gerekir.
Computed sütunlar, seçme listeleri, WHERE yan tümceleri, ORDER BY yan tümceleri veya, normal ifadeler kullanılabilir, aşağıdaki özel durumlar ile diğer konumlarda kullanılabilir:
Hesaplanan sütunlar gibi PERSISTED NOT NULL Kısıtlamaları CHECK ve yabancı anahtar işaretlenmelidir.hesaplanan sütun bir anahtar sütununa bir dizin veya birincil anahtar veya UNIQUE sınırlaması herhangi bir parçası olarak hesaplanan sütun değeri belirli bir ifade tarafından tanımlanır ve sonuç veri türü dizin sütunlarında verilen kullanılabilir.
Örneğin, tablo tamsayı sütunu vardıra ve b , hesaplanmış bir sütun bir + b olabilir dizine alınmış, ancak hesaplanan sütun bir + DATEPART(**dd,**GETDATE()) cannot be indexed because the value may change in subsequent invocations.
hesaplanan sütun, hedefi olan olamaz bir INSERT veya UPDATE deyim.
The Database Engine automatically determines the nullability of computed columns based on the expressions used.Olası underflows veya taşıyor null olarak sonuçlar çünkü sadece nonnullable sütun varsa, çoğu ifadeleri sonucu null olarak kabul edilir.COLUMNPROPERTY işlevini kullananAllowsNull özellik herhangi bir hesaplanmış sütun bulunan bir tablo. null atanabilirlik incelemek için An expression that is nullable can be turned into a nonnullable one by specifying ISNULL(check_expression**,**constant), where the constant is a nonnull value substituted for any null result.