Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Hesaplanan sütun, sütun PERSISTED olarak işaretlenmedikçe fiziksel olarak tabloda depolanmayan bir sanal sütundur. Hesaplanan sütun ifadesi, ait olduğu sütunun değerini hesaplamak için diğer sütunlardaki verileri kullanabilir. SQL Server Management Studio (SSMS) veya Transact-SQL (T-SQL) kullanarak SQL Server'da hesaplanan sütun için bir ifade belirtebilirsiniz.
Limitations
Hesaplanan bir sütun, bir
DEFAULTveyaFOREIGN KEYkısıtlaması olarak veya birNOT NULLkısıtlaması ile kullanılamaz. Ancak, hesaplanan sütun değeri belirlenici bir ifadeyle tanımlanırsa ve sonucun veri türüne dizin sütunlarında izin verilirse, hesaplanan sütun bir dizinde anahtar sütun olarak veya herhangiPRIMARY KEYbir ya daUNIQUEkısıtlamanın parçası olarak kullanılabilir.Örneğin, tabloda tamsayı sütunları
avebvarsa,a + bolarak tanımlanan bir hesaplanan sütun dizine alınabilir, ancaka + DATEPART(dd, GETDATE())olarak tanımlanan bir hesaplanan sütun dizine alınamaz çünkü sonraki çağrılarda değeri değişebilir.Hesaplanan sütun, INSERT veya UPDATE deyiminin hedefi olamaz.
SET QUOTED_IDENTIFIERhesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya değiştirirken olmalıdırON. Daha fazla bilgi için bkz. SET QUOTED_IDENTIFIER (Transact-SQL).
Permissions
Tabloda değişiklik yapmak için ALTER izni gereklidir.
SQL Server Management Studio'yu kullanma
Yeni hesaplanan sütun ekleme
Nesne Gezgini'nde, yeni hesaplanan sütunu eklemek istediğiniz tabloyu genişletin. Sütunlar'a sağ tıklayın ve Yeni Sütun'u seçin.
Sütun adını girin ve varsayılan veri türünü (nchar(10)) kabul edin. Veritabanı Altyapısı, formülde belirtilen ifadelere veri türü önceliği kurallarını uygulayarak hesaplanan sütunun veri türünü belirler. Örneğin, formül money türünde bir sütuna ve int türünde bir sütuna başvuruda bulunuyorsa, hesaplanan sütun para türünde olur çünkü bu veri türü daha yüksek önceliğe sahiptir. Daha fazla bilgi için bkz. Veri Türü Önceliği (Transact-SQL).
Sütun Özellikleri sekmesinde Hesaplanan Sütun Belirtimi özelliğini genişletin.
(Formül) alt özelliğinde, sağdaki kılavuz hücresinde bu sütun için ifadeyi girin. Örneğin, bir
SalesTotalsütunda girdiğiniz formül, tablodaki her satır için bu sütunlara değer ekleyen formülü olabilirSubTotal+TaxAmt+Freight.Important
Formül farklı veri türlerinin iki ifadesini birleştirdiğinde, veri türü önceliği kuralları düşük önceliğe sahip veri türünün daha yüksek önceliğe sahip veri türüne dönüştürüleceğini belirtir. Dönüştürme desteklenen bir örtük dönüştürme değilse hata
Error validating the formula for column column_name.döndürülür. Veri türü çakışmasını çözmek içinCASTveyaCONVERTişlevini kullanın. Örneğin, nvarchar türünde bir sütun int türünde bir sütunla birleştirilirse, bu formülde gösterildiği gibi tamsayı türü('Prod'+CONVERT(nvarchar(23),ProductID))dönüştürülmelidir. Daha fazla bilgi için bkz . CAST ve CONVERT (Transact-SQL).KalıcıDır alt özelliği için açılan listeden Evet veya Hayır'a tıklayarak verilerin kalıcı olup olmadığını belirtin.
Dosya menüsünden Kaydet'i seçintablo adı.
Mevcut bir sütuna hesaplanan sütun tanımı ekleme
- Nesne Gezgini'nde, değiştirmek istediğiniz sütunu içeren tabloya sağ tıklayın ve Sütunlar klasörünü genişletin.
- Hesaplanan sütun formülü belirtmek istediğiniz sütuna sağ tıklayın ve Sil'i seçin. Tamam'ı seçin.
- Yeni bir sütun ekleyin ve yeni bir hesaplanan sütun eklemek için önceki yordamı izleyerek hesaplanan sütun formülünü belirtin.
Transact-SQL kullanma
Tablo oluştururken hesaplanan sütun ekleme
Aşağıdaki örnek, QtyAvailable sütunundaki değeri UnitPrice sütunundaki değer ile çarpan hesaplanan bir sütuna sahip bir tablo oluşturur.
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;
-- Update values in the table.
UPDATE dbo.Products
SET UnitPrice = 2.5
WHERE ProductID = 1;
-- Display the rows in the table, and the new values for UnitPrice and InventoryValue.
SELECT ProductID, QtyAvailable, UnitPrice, InventoryValue
FROM dbo.Products;
Mevcut tabloya yeni bir hesaplanan sütun ekleme
Aşağıdaki örnek, önceki örnekte oluşturulan tabloya yeni bir sütun ekler.
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5);
İsteğe bağlı olarak, hesaplanan değerleri tabloda fiziksel olarak depolamak için PERSISTED bağımsız değişkenini ekleyin:
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) PERSISTED;
Var olan bir sütunu hesaplanan sütun olarak değiştirme
Aşağıdaki örnek, önceki örnekte eklenen sütunu değiştirir.
ALTER TABLE dbo.Products DROP COLUMN RetailValue;
GO
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5);
GO