Eğer Sütun özellikleri hakkında yeterli bilgiye sahip değilseniz tablo tasarımında oldukça güçlük çekmemiz kaçınılmazdır. Bu yüzden bu yazımda Veritabanının en temel parçası olan sütunların SSMS (SQL Server Management Studio) özelliklerine örneklerle değineceğim.
Öncelikle SSMS üzerinde yeni bir tablo oluşturmak için aşağıda göründüğü gibi Object Explorer penceresinde bulunan Database ağacını genişleterek Tables ağacını sağ tıklayarak New Table.. ı tıklıyoruz.

Karşımıza çıkan ekranda Cloumn Name ve Data Type alanlarını doldurmanız gerekmekte aşağıda göründüğü gibi pencerenin alt kısmında o veri tipinin özellikleri de yer almakta.

Not: Bazı özellikler yalnızca belirli veri türleri için görüntülenir.
Şimdi bu özelliklere ve ne işe yaradıklarına tek tek değinelim.
Name:
Name; basitçe sütunun ismidir. Alan adını değiştirmek için tablo tasarım gönümünü yada özellikler penceresini kullanabilmekteyiz.
Allow Nulls:
Allow Nulls sütunda bulunacak verilerin Null değer alıp almayacaklarını gösterir. (Bilindiği üzere null değer içinde veri bulunmayan alan ifade etmektedir ve boşluk ve sıfırdan tamamen farklıdır.) Eğer alanın Allow Nulls özelliği hayır seçilirse alan boş bırakılamaz ve mutlaka bir değer alması gerekmektedir. Bu özelliği aynı zamanda tablo tasarım görünüünde Allow Nulls alanının checkbox’ını kaldırırarakta yapabilirsiniz.
Data Type:
Data Type, adından da anlaşılacağı gibi alana girilebilecek veri tipini belirtir. Bu alanda seçilen tipe göre verinin ne kadar yer kaplayacağı gibi özelliklerde belirlenmektedir. veri tipleri hakkında daha geniş bilgi sahibi olmak için bu
makale‘ye göz atabilirsiniz.
Default Value or Binding:
Default Value or Binding, ise özellikle null olmamasını istediğimiz alanlarda kaydı otomatik olarak varsayılan bir değer atamak için kullanılan özelliktir. Eğer INSERT deyimi içerisinde o alana ait bir kayıt girilmese bile burada belirlediğimiz değeri otomatik olarak o Cloumn içine kaydedecektir.
Length:
Length, Karakter ve numerik tipindeki verilerin maksimum alabileceği uzunluğu belirtir. Örneğin navchar(50) o alanın 50 karakterlik maksimum uzunluğa sahip olabileceğini belirtmektedir.
Collation:
Collation, SQL Server’ın destekleyeceği dilin ve dillere özel karakter yapılarının belirlenmesini sağlayan özelliktir. Yani Siz veri tabanınızda Türkçe karakter seti kullanacaksanız Collation özelliğini ona göre seçmek durumudasınız. Bu özellik SQL Server da sütun, veritabanı ve sunucu seviyelerinde ayarlanabilmektedir.
Computed Column Specification:
Computed Column Specification, hesaplama yapılması gereken sütunlerın otomatik olarak girilen formüllere göre hesaplayıp değerleri atmasını sağlamaktadır.
- (Formula): bu alan formülün girileceği alandır.
- Is Persisted: bu özellik veritabanından formülün mü yoksa hesaplanan değerin mi saklanması gerektiğini belirtir.
Örnek:
Elimizde Column1 Column2 ve Column3 olmak üzere ü adet sütun olsun bu sütunlardan Column3′ün değeri Column1 ve Column2′nin çarpımları olsun. Bu durumda Computed Column Specification alanında Column1*Column2 yazmamız yeterli olacaktır.
|
|
INSERT INTO demo (Column1,Column2) VALUES ( 5,50) |
Bu örnek için column1 ve column2 ye değerleri aşağıdaki gibi atadığımızda karşımıza çıkan sonuç ise aşağıda göründüğü gibi olmaktadır.

Condensed Data Type:
Bu özellik Data Type ve Length özelliklerine göre alan ve maksimum karakter sayıları hakkında bilgi gösterir.
Description:
Sütun hakkında açıklama yazmamızı sağlar.
Deterministic:
Deterministic, seçilen sütunun veri tipinin kesin olarak tespit edilip edilemediğini ifade eder., Özellikle hesaplanan değerlerde dönen verilerin farklı tiplerde dönebildiği durumlarda kullanılır.
DTS-published:
DTS (SQL 2005) olarak yayınlanan sütunları belirtir.
Full-text Specification:
Değiştirilebilir olması için veri tipi Full-Text oalrak seçilmiş ve bir indeks belirtilmiş olması gerekmektedir.
- (Is Full-text Indexed): Eğer Full-Text indeksiniz mevcutsa evet olarak gözükecektir.
- Full-text Type Column: Eğer Full-Text indeks varsa bu sütun gözükecektir. Eğer yoksa None değerini alacaktır.
- Language: İndeks Sütununun dilini belirtir özellikle sözcük ayraçları için önemlidir.
- Statistical Semantics: Full-text Index oluşturulurken Statistical Semantics özelliği açıldı ise evet açılmadıysa hayır olarak gösterilecektir.
Has Non-SQL Server Subscriber:
Oracle ya da DB2 gibi farklı veritabanı dillerinden aktarılan verileri belirtir. Eğer SQL Server dışından replike edilmiş bir veri alanı ise bu özellik “Yes” değerini alacaktır.
Identity Specification:
Alanın bir Identity olup olmadığını gösterir.
- (Is Identity): Alanın Identity alanı olup olmadığını belirtir. Identity alanlar sayılsa olup, tekil ve o tabloda sadece bir tane olabilen ve otomatik artan alanlardır.
- Identity Increment: artış miktarını belirler.
- Identity Seed: İlk Satıra verilecek olan otomatik değerdir. Varsayılan “1″ olarak gelir.
Indexable:
İndex oluşturulup oluşturulmadığını geliştiricinin görmesini sağlar.
Is Sparse:
SQL Server 2008 ile birlikte gelen bu özellik, Null değeri alan alanlar için depolama alanı kullanılmasını engellemektedir.
Is Columnset:
Sparse Column içinde Null olmayan bir değer girildiğinde Bu değerin XML olarak saklanabilmesini sağlayan özelliktir.
- Her tabloda sadece bir adet Cloumnset alan olabilir.
- Kısıtlama yada varsayılan değer almazlar.
- Bu alan için XML data tipi kullanılmalıdır.
|
|
CREATE TABLE DEMO ( Column1 int primary key, Column2 int sparse, Column3 xml column_set for all_sparse_columns ) |
Merge-Published:
Sütunun Merge (birleştirme) edilerek replike edildiği durumlarda “Yes” değerini olan ve kullanıcı tarafından müdahale edilemeyen özelliktir.
Not for Replication:
Genellikler Identity alanlarında orijinal Identity verilerinin tutulması için kullanılan ve Replikasyonda kullanılmaması gereken sütunlarda kullanılır. Eğer Replikasyon kullanılması gerekiyor ve bir sütun Identity özelliğine sahip ise mutlaka bu özelliğin de “Yes” olması gerekmektedir.
Replicated:
Sadece SQL Server 2005′te mevcut olan özellik Replike edilmiş sütunları gösterir.
RowGuid:
Otomatik olarak unique identity değer oluşturmak için kullanılan özelliktir. Sütunun veri tipi uniqueidentifer olduğu durumlarda gözükür.
Örnek: Elimizdeki tabloda Column4′ü RowGuid özelliği aktif edilen bir Column olsun.

Aşağıdaki verilerle INSERT deyimini çalıştırdığımızda
|
|
INSERT INTO DEMO (Column2, Column3) VALUES (‘Cheese’, ‘Pizza’) INSERT INTO DEMO (Column2, Column3) VALUES (‘Ham’, ‘Pizza’) |
Sonuç olarak ise aşağıda gördüğümüz gibi Column4 benzerbir bir ID olarak doldurulmakta.

Size:
Sütuna girilecek her kayıt için ne kadar yer ayrılması gerektiğini belirtir.
Örneğin aşağıda tarih zaman verileri için kullanılan alanların olması gerektiği boyutları listeleyen tabloya bakabilirsiniz.
| Data Type |
Storage Space |
| smalldatetime |
4 bytes |
| datetime |
8 bytes |
| datetime2 |
6 to 8 bytes |
| datetimeoffset |
8 to 10 bytes |
| date |
3 bytes |
| time |
3 to 5 bytes |
Bu makalede SQL Server’da tablolalarla uğraşırken en çok karşılaşacağınız Sütun özelliklerine değinmiş olduk. İlerleyen günlerde yine fırsat buldukça bu tarz makalelere daha fazla zaman ayırmayı istiyorum.