Daher möchte ich eine Spalte in meiner SQL Server-Datenbank so ändern, dass keine Nullen zulässig sind, aber es wird immer wieder eine Fehlermeldung angezeigt. Dies ist die SQL-Anweisung, die ich verwende:
alter table [dbo].[mydatabase] alter column WeekInt int not null
und das ist der Fehler, den ich erhalte:
Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'WeekInt', table 'CustomerRadar.dbo.tblRWCampaignMessages'; column does not allow nulls. UPDATE fails.
The statement has been terminated.
Ich bin mir ziemlich sicher, dass mein SQL-Code richtig ist, und es gibt derzeit keine Nullen in der Spalte, die ich zu ändern versuche. Daher bin ich mir nicht sicher, was das Problem verursacht. Irgendwelche Ideen? Ich bin ratlos.
Die Tabelle enthält eindeutig NULL
Werte. Welche können Sie überprüfen mit:
select *
from mydatabase
where WeekInt is NULL;
Dann können Sie eines von zwei Dingen tun. Ändern Sie entweder die Werte:
update mydatabase
set WeekInt = -1
where WeekInt is null;
Oder löschen Sie die fehlerhaften Zeilen:
delete from mydatabase
where WeekInt is null;
Wenn alle Werte in Ordnung sind, können Sie die Anweisung alter table
ausführen.
Wenn Sie versuchen, eine Spalte in nicht null zu ändern, und diese Fehlermeldung angezeigt wird, stellen Sie sicher, dass Sie nach is null
und nicht nach = null
suchen (was zu unterschiedlichen Ergebnissen führt).
Select * from ... where column is null
anstatt
Select * from ... where column = null
Ich füge dies hinzu, weil es mich gestolpert und eine Weile gedauert hat, um es zu lösen.