2013-08-05 16 views
8

Also möchte ich eine Spalte in meiner SQL Server-Datenbank so ändern, dass Nullen nicht zulässig sind, aber ich bekomme immer einen Fehler. dies ist die SQL-Anweisung ich verwende:Ändern Sie eine Spalte so, dass Nullen nicht zulässig sind

alter table [dbo].[mydatabase] alter column WeekInt int not null 

und das ist der Fehler 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 meine sql richtig ist, und es gibt keine NULL-Werte derzeit in der Spalte Ich versuche mich zu ändern, also bin ich mir wirklich nicht sicher, was das Problem verursacht. Irgendwelche Ideen? Ich bin ratlos.

+0

Der Fehler scheint darauf hinzuweisen, dass Sie eine Anweisung 'INSERT' oder' UPDATE' ausführen, nicht eine Anweisung 'ALTER TABLE'. –

+3

Sie sind zu 110% sicher, dass es in dieser Spalte keine Nullen gibt, der Fehler würde darauf hindeuten, dass dies der Fall ist. –

+0

@a_horse_with_no_name nein es ist definitiv ein alter script – user2255811

Antwort

8

Offensichtlich hat die Tabelle NULL Werte darin. Was Sie überprüfen können:

select * 
from mydatabase 
where WeekInt is NULL; 

Dann können Sie eines von zwei Dingen tun. Entweder die Werte ändern:

update mydatabase 
    set WeekInt = -1 
    where WeekInt is null; 

Oder die beanstandeten Zeilen löschen:

delete from mydatabase 
    where WeekInt is null; 

Dann, wenn alle Werte in Ordnung sind, können Sie die alter table Anweisung tun.

+0

Kann es in einer einzigen Abfrage durchgeführt werden – Imad

Verwandte Themen