#1 MSSQL Eğitim Seti Tablo Oluşturma - Create Table

Ocak 26, 2017 Mustafa BÜKÜLMEZ 0 Yorum

1 - CREATE TABLE

Bu komut bir tablo oluşturmamızı sağlar. Ama kullanıyor musun derseniz kullanmıyorum. Çünkü MSSQL üzerinden kod yazmadan açabiliyoruz.


Kategori tablomuzun Script'i


CREATE TABLE Kategoriler

(

    [Kat_RECno] [int] IDENTITY(1,1) NOT NULL,

    [Kat_RECno2] [int] NOT NULL,

    [Kat_Adi] [nvarchar](150) NULL,

    [Kat_Tur] [nvarchar](150) NULL,

    [Kat_Aciklama] [nvarchar](500) NULL,

    [Kaydeden] [nvarchar](150) NULL,

    [Kayit_Tarih] [datetime] NULL,

    [Degistiren] [nvarchar](50) NULL,

    [Degistirme_Tarih] [datetime] NULL,

    [Silen] [nvarchar](50) NULL,

    [Silme_Tarih] [datetime] NULL,

        [Aktif] [Bit] NULL

)


Identity (1,1) NOT NULL ne demek?


Hiçbir şekilde boş olmayacak, aynısından iki tane olmayacak ve otomatik olarak birden başlayarak birer birer artacak benzersiz bir anahtar stundur.

Kısacası ID stunumuzdur. Ben her zaman *RECno olarak yazarım. MklRECno, MakRECno, SipRECno, IrsRECno...


IDENTITY = ID'de IDENTITY'nin ilk iki harfinden gelir ve kimlik anlamına gelir ki bir kimlikten iki tane olmaz. Bizim dilimizde Benzersiz'dir

(1,1) = Birden başlayarak birer birer artan sayıdır.

NOT NULL = "Boş bırakılamaz" anlamına gelir. zaten Identiy(1,1) dediğimiz için boş olma şansı kalmıyor.


Bu scripte baktığımızda tablo adı ile ilgili 5 genel olarak 7 stun olmak üzere toplam 12 stun var. Bunu biraz irdeleyelim.

sektörde bulunduğum süre boyunca öğrendiğim şeylerden biri, "GENEL STUNLAR" adını verdiğim her tabloda bulunması gereken stunlardır.


Peki Neden?

Bunun sebebi,bu kaydı ;

[Kaydeden] = kim açtı?,

[Kayit_Tarih] = ne zaman açtı?,

[Degistiren] = kim değiştirdi?,

[Degistirme_Tarih] = ne zaman değiştirdi?,

[Silen] = kim sildi?,

[Silme_Tarih] = ne zaman sildi?


ve bir stun daha ki benim için en önemlilerden,

[Aktif] = Göster / Gösterme

Bu stunu, eğer kayıt silindi ise Aktif stununu 0 (false) olarak update ederim. Kayıt silindi gibi görünür ama silinmez ve sadece listelerde görünmez hale gelir.

Bu sebebi ise;


+ Yahu benim son açtığım siparişi kim sildi? Bulamıyorum? Sen mi sildin?

+ Programın bozuk arkadaş. Dün açtığım kaydı bulamıyorum..

(Halbuki adam o kaydı silmiş, geri de getirememiş, programa suç buluyor.)

(Yada patrona sinir olan bir personelde silmiş olabilir.)


gibi soruların cevabını bulmaktır. Silme esnasında silen ve tarihi de aldığımızdan dolayı bulmak çok kolay. Aktif stunundaki 0'ı 1 yap bak geri geldi ;)


ve son olarak da

[Kat_RECno2]  = yedek RECno'dur, yani yedek bir ID. Bazen tablo taşımalarında DB değiştirmelerinde vs.işlemlerde IDENTITY bozulabiliyor ama daha

önce hiç başıma gelmedi. Yaşayanlar anlatmıştı bende kendime bunu alışkanlık ettim. Ne olur ne olmaz ;)

Yani sırası pert oluyor.Karman çorman oluyor. 1. kayıt 11 gibi görünüyor. 100. kayıt ebesini ziyarete gidiyor felan :)

Bu kolonda onun önüne geçmiş oluyor. O bozulsa bile bu bizim elimizde sağlam duruyor. NOT NULL olmalı ama siz doldurmalısınız.

0 Yorum: