SQL Server’da NULL Kolonları NOT NULL Yapmak
Herkese merhaba,
Bu yazıda SQL Server’da NULL kolonları NOT NULL yapmak ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda geçerli kolonda NULL değer olmamasını isteyebiliriz.
Diyelim ilk başta NULL olsun diye bıraktığınız bir kolon var. Bu kolon NOT NULL olsun dediniz ve işlem yaptınız. Bazı hatalar alabilirsiniz. Aşağıdaki örnekte bu hatanın nasıl giderilebileceğinden bahsedeceğim.
--Tablonun oluşturulması
CREATE TABLE NullTablosu
(
Id INT NOT NULL
,Degerler INT NULL
)
--Tabloya veri eklenmesi
INSERT INTO NullTablosu VALUES (1,NULL) ,(2,20),(3,30) , (4,NULL)
--Tablonun kontrol edilmesi
SELECT * FROM NullTablosu
NullTablosu diye bir tablo oluşturduk ve içerisine yukarıdaki verileri ekledik.
Şimdi bu tablo üzerinde NULL kolonları NOT NULL yapalım.
ALTER TABLE NullTablosu
ALTER COLUMN Vals INT NOT NULL
Yukarıdaki kodu çalıştırdığınızda aşağıdakine benzer bir hata alacaksınız.
Msg 515, Level 16, State 2, Line 21
Cannot insert the value NULL into column ‘Degerler’, table ‘TestIslemleri.dbo.NullTablosu’; column does not allow nulls. UPDATE fails.
The statement has been terminated.
gibi bir hata almış olmalısınız.
Burada önce NULL değerlerini başka bir değere güncellememiz gerekiyor. Ardından NULL kolonları NOT NULL yapabiliriz.
UPDATE x
SET x.Degerler = -1
FROM NullTablosu x
WHERE x.Degerler IS NULL
ALTER TABLE NullTablosu
ALTER COLUMN Degerler INT NOT NULL
SELECT * FROM NullTablosu
Görüldüğü üzere NULL kolonlar NOT NULL yapılmış oldu yani kolon güncellemesini yapmış olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.