Herkese merhaba,
Bu yazıda size SQL Server’da bir tablo içindeki Null alanların nasıl Not Null yapılacağından bahsedeceğim. Örnek işlem için aşağıdaki kodları inceleyelim.
--Tablo oluşturulması
CREATE TABLE Sutunlar (
IDDegeri INT IDENTITY(1,1) PRIMARY KEY,
Kelime1 NVARCHAR(100),
Kelime2 NVARCHAR(100)
)
--Veri eklenmesi
INSERT INTO dbo.Sutunlar
( Kelime1, Kelime2 )
VALUES ( N'Halı',
N'Saha'
),
(
N'Kazma',
N'Kürek'
),
(
N'Düğün',
N'Dernek'
)
--Veri listelenmesi
SELECT * FROM Sutunlar
--Default Constraint Değer ataması yapıyoruz (Kelime1 alanına)
ALTER TABLE dbo.Sutunlar
ADD CONSTRAINT DK_Kelime1 DEFAULT 'DefaultDeger' FOR Kelime1
--1 ve 3 numaralı ID değerleri NULL olarak update ediliyor.
UPDATE dbo.Sutunlar SET Kelime1= NULL WHERE IDDegeri IN (1,3)
--Veri listelenmesi
SELECT * FROM Sutunlar
--Null olan alanların DefaultDeger olarak update edilmesi. Edilmezse Not Null yapamayız
UPDATE dbo.Sutunlar
SET Kelime1 = 'DefaultDeger'
WHERE Kelime1 IS NULL
--Kelime1 alanının Not null yapılması
ALTER TABLE Sutunlar
ALTER COLUMN Kelime1 nvarchar(100) NOT NULL
--Veri listelenmesi
SELECT * FROM Sutunlar
Burada bir tablo oluşturduk, içine 3 değer insert ettik. Sonrasında Kelime1 değerine DefaultDeger adında default constraint atama işlemi yaptık. 1 ve 3 IDDegeri’ne sahip alanların Kelime1 değerleri Null olarak update edildi. Bu işlem sonrasında Kelime1 alanını Not Null yapmak istediğimizde bize bir hata verecektir. Kelime1 alanını Not Null yapmak için, Null olan kısımlar default constrait’de belirtilen DefaultDeger olarak güncellenirse, Not Null yapmamıza izin verecektir. Aksi durumda aşağıdaki hatayı alırsınız.
Msg 515, Level 16, State 2, Line 50 Cannot insert the value NULL into column 'Kelime1', table 'test.dbo.Sutunlar'; column does not allow nulls. UPDATE fails. The statement has been terminated.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.
