SQL Server’da Null Alanların Not Null Yapılması
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.