SQL Server’da Hesaplanan Sütunu
Normal Sütun Olarak Nasıl Değiştirirsiniz
Eğer SQL Server ile çalışıyorsanız, bir hesaplanan sütunu normal bir sütuna değiştirme ihtiyacı ile karşılaşabilirsiniz. Bu, sütunda doğrudan veri saklamaya başlamak istediğinizde gerekli olabilir; böylece sütun, bir ifade temelinde otomatik olarak hesaplanmaz. Ne yazık ki, SQL Server, mevcut bir hesaplanan sütunu veri kaybı yaşamadan basitçe non-hesaplanan bir sütuna değiştirmenize izin vermez. Ancak, istenen sonuca ulaşmanızı sağlayacak bir çözüm yolu vardır. Bu blog yazısında, süreci adım adım inceleyeceğiz.
Hesaplanan Sütunları Anlamak
Çözüme geçmeden önce, hesaplanan bir sütunun ne olduğu hakkında bilgi edinmek önemlidir.
- Hesaplanan Sütun: SQL Server’da hesaplanan sütun, aynı tabloda bulunan diğer sütunlardan türetilen sanal bir sütundur. Değerleri, her bir satır alındığında veya değiştirildiğinde otomatik olarak hesaplanır.
- Örnek: Örneğin,
first_name
velast_name
sütunlarından türetilen birfull_name
sütununuz varsa, SQL Server, tabloyu sorguladığınızdafull_name
değerini hesaplar.
Şimdi, mevcut değerlerini koruyarak bir hesaplanan sütunu normal bir sütuna dönüştürmek için gerekli adımları keşfedelim.
Adım Adım Çözüm
Adım 1: Tabloya Yeni Bir Sütun Ekleyin
İlk adım, mevcut tablonuzda hesaplanan sütunda bulunan değerleri nihai olarak tutacak yeni bir sütun oluşturmaktır. Bunu nasıl yapacağınızı şöyle gösterebiliriz:
ALTER TABLE YourTableName ADD NewColumnName DataType;
YourTableName
ile tablonuzun adını, NewColumnName
ile yeni sütunun adını ve DataType
ile beklenen değerlere göre uygun veri türünü (örn., VARCHAR
, INT
, vb.) değiştirin.
Adım 2: Hesaplanan Sütundan Veri Kopyalayın
Sonra, hesaplanan sütundaki verileri yeni oluşturduğunuz sütuna aktarmak isteyeceksiniz. Bunu UPDATE
ifadesi ile yapabilirsiniz:
UPDATE YourTableName SET NewColumnName = ComputedColumnName;
Veri kopyalamak için kullandığınız hesaplanan sütunun gerçek adı ile ComputedColumnName
kısmını değiştirin.
Adım 3: Hesaplanan Sütunu Kaldırın
Artık değerleri yeni sütunda sakladığınıza göre, eski hesaplanan sütunu kaldırabilirsiniz. Bu, tablonuzda yer açacak ve dönüşümü tamamlayacaktır:
ALTER TABLE YourTableName DROP COLUMN ComputedColumnName;
Adım 4: Yeni Sütunu Yeniden Adlandırın (İsteğe Bağlı)
Yeni sütunun eski hesaplanan sütun ile aynı ada sahip olmasını istiyorsanız, şunu kullanabilirsiniz:
EXEC sp_rename 'YourTableName.NewColumnName', 'ComputedColumnName', 'COLUMN';
Sürecin Özeti
Hesaplanan bir sütunu non-hesaplanan bir sütuna dönüştürmek için bu basit adımları izleyin:
- Tabloya yeni bir sütun ekleyin.
- Hesaplanan sütundan veriyi yeni sütuna kopyalayın.
- Hesaplanan sütunu kaldırın.
- (İsteğe Bağlı) Yeni sütunu, orijinal adı korumak için yeniden adlandırın.
Sonuç
SQL Server, doğrudan bir hesaplanan sütunu normal bir sütun olarak değiştirmeye izin vermese de, yukarıda belirtilen adımlar mevcut verilerinizi kaybetmeden pratik bir çözüm sunmaktadır. Yeni bir sütun ekleyerek, veri kopyalayarak ve ardından hesaplanan sütunu kaldırarak, istediğiniz sonuca etkili bir şekilde ulaşabilirsiniz.
Bu blog yazısını faydalı bulduysanız veya bu bilgiye ihtiyaç duyabilecek birini tanıyorsanız, paylaşmaktan çekinmeyin! Daha fazla SQL Server ipucu ve püf noktası için blogumuzu takipte kalın.