ga('create', 'UA-36370145-1', 'auto'); ga('send', 'pageview');

Alter Table Kullanımı

Merhaba
Oluşturulmuş olan bir tabloyu , Kolon ekleme,kolon kaldırma,constraint ekleme , constraint kaldırma,constraint aktif enable veya constraint pasif disable yapma, trigger açma enabled aktif hale getirme ve trigger kapatma,trigger disabled ve pasif hale getirme özelliklerini uygulayabilir , her türlü tablo değişikliklerini bu komut ile yapabiliriz.Bunların içerisinde Identity özelliği ekleme dahildir.
Kullanımı
ALTER TABLE table
{ [ ALTER COLUMN column_name
{ new_data_type [ ( precision [ , scale ] ) ] [ COLLATE < collation_name > ] [ NULL | NOT NULL ] | {ADD | DROP } ROWGUIDCOL }
] | ADD
{ [ < column_definition > ] | column_name AS computed_column_expression
} [ ,…n ] | [ WITH CHECK | WITH NOCHECK ] ADD
{ < table_constraint > } [ ,…n ] | DROP
{ [ CONSTRAINT ] constraint_name
| COLUMN column } [ ,…n ] | { [ WITH CHECK | WITH NOCHECK ] CHECK | NOCHECK } CONSTRAINT
{ ALL | constraint_name [ ,…n ] }
| { ENABLE | DISABLE } TRIGGER
{ ALL | trigger_name [ ,…n ] }
}
< column_definition > ::=
{ column_name data_type }
[ [ DEFAULT constant_expression ] [ WITH VALUES ] | [ IDENTITY [ (seed , increment ) [ NOT FOR REPLICATION ] ] ] ] [ ROWGUIDCOL ] [ COLLATE < collation_name > ] [ < column_constraint > ] [ …n ] < column_constraint > ::=
[ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ ON { filegroup | DEFAULT } ] ] | [ [ FOREIGN KEY ] REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ] ] | CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}
< table_constraint > ::=
[ CONSTRAINT constraint_name ] { [ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ] { ( column [ ,…n ] ) }
[ WITH FILLFACTOR = fillfactor ] [ ON {filegroup | DEFAULT } ] ] | FOREIGN KEY
[ ( column [ ,…n ] ) ] REFERENCES ref_table [ ( ref_column [ ,…n ] ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ] | DEFAULT constant_expression
[ FOR column ] [ WITH VALUES ] | CHECK [ NOT FOR REPLICATION ] ( search_conditions )
}
Alter table komutu
compatibility level i 65 den önceki levelleri desteklemez.
Örnek Kullanımı
Bir tablo yaratıp o tablo üzerinde örnekler yapalım.
CREATE TABLE personel ( ID INT) ? Personel adında yanlızca Id kolonu olan bir tablo oluşturuyoruz.
GO
ALTER TABLE personel ADD AdSoyad VARCHAR(120) NULL?Yeni bir kolon AdSoyad kolonu oluşturuyoruz
GO
ALTER TABLE personel ADD SirketNo NULL?Sirket tarafindan ozel olarak verilmiş numaralarimiza sqlde tek olması için constraint tanımlayalım
CONSTRAINT sirketozelID UNIQUE
GO
ALTER TABLE PERSONEL WITH NOCHECK?Kontrol etmemesi gerektiği
GO
ALTER TABLE DOGUMTARIHI ADD AdSoyad VARCHAR(120)?Yeni kolon olustur
ADD CONSTRAINT DOGUMKONTROL CHECK (DOGUMTARIHI > 1900)?Dogum tarihi kolonuna girilen tarihi 1900’den büyük olması gerekiyor.
GO
Örnek 2
CREATE TABLE Memleket( Id INT)
GO
ALTER TABLE Memleket ADD
/* Primary key yapıp Otomatik artış kolonunu belirleyip artis miktarini belirliyoruz*/
ID INT IDENTITY(1,1)?Birden başla bir bir arttır.
CONSTRAINT IDD PRIMARY KEY,?PRIMARY KEY YAPTIK
/* Constraint ile bir tablodaki bilgiyi diğer bir tablodan referans olarak alma. */
Ilkodu INT NULL ?Kolonu oluşturuyoruz
CONSTRAINT Ilkoduref ?Constrainti oluşturuyoruz.
REFERENCES Iller(IlKod),?Constrainte diğer tablodaki referans alınacak kolonu gösteriyoruz.
/* Zorlayıcı ile bir kolon oluşturuyoruz. */
/* Oluşturuduğumuz kolona girilmesi gereken telefon formatını berlitiyoruz. */
tel VARCHAR(16) NULL?kolon oluştur
CONSTRAINT telcons.?constraint adı belirledir
CHECK
(column_d IS NULL OR ?Eğer boşsa kayıt yap dedik
column_d LIKE ?[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]? OR?Formatı verdik 0 ile 9 arası sayı girilebilir dedik her bir [0-9] kullandığımızda
tel LIKE
?([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]?),? yada böyle olacak dedik.
/* Add a nonnull column with a default. */
NotOrtalamasi DECIMAL(3,3)
CONSTRAINT NOTORTALAMADEFAULT
DEFAULT .081
GO
Kolona Default özelliği belirleme
ALTER TABLE personel?Personel tablosun girip değiştir
ADD isegiristarihi smalldatetime NULL?Işe giriş diye bir kolon aç
CONSTRAINT tarihdfl?Constraint oluştur
DEFAULT getdate() WITH VALUES?Default özelliği bugünün tarihini at.
CREATE TABLE Urunler
(id INT NOT NULL,
name VARCHAR(10) NOT NULL,
Miktar MONEY NOT NULL
CONSTRAINT Miktar CHECK (Miktar > 5)-5 den ufak girisleri kabul etmez
)
INSERT INTO urunler VALUES (1,?Elma?,4)
INSERT INTO urunler VALUES (2,?Armut?,6)
?Goruldugu gibi ilk kayıt kayıt edilmesi ikincisi kayıt edildi.
?constraint in kabul ediceği kayıtlar ? 5 den büyük olanlar
INSERT INTO urunler VALUES (3,?Muz?,7)
? Constrainti kapatıp tekrar deneyelim
ALTER TABLE urunler NOCHECK CONSTRAINT Miktar?Constrainti kapat
INSERT INTO urunler VALUES (1,?Elma?,4)? Bunu şimdi kabul edecektir.
? Tablodaki triggerı kapatma
?Trigger oluşturuyoruz
CREATE TRIGGER urunlerintriggeri ON urunler FOR INSERT
as
IF (SELECT COUNT(*) FROM INSERTED
WHERE miktar< 5) > 0
BEGIN
print ?Gireceğiniz ürünlerin en az 5 kg olmak zorundadır.Kayıt iptal edildi?
ROLLBACK TRANSACTION
END
GO
?Bir kayıt girerseniz miktarı 5 den küçük kabul etmeyecek ve hata verecektir.
?Ancak şimdi triggerı alter table komuyu ile kapatıyoruz.
ALTER TABLE urunler DISABLE TRIGGER urunlerintriggeri
GO
?Alter komutu ile triggerı enable yapıp açıyoruz (aktif hale getirme)
ALTER TABLE urunler ENABLE TRIGGER urunlerintriggeri

Ayrıca Buna Bakabilirsiniz

TRANSACTION Nedir

TRANSACTION Nedir ? Transaction Ne işe yarar ? Bir veya daha fazla SQL ifadeleri tek …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir