2013-08-05 11 views
8

Więc chcę zmienić kolumnę w mojej bazie danych programu SQL Server, aby nie zezwalać na wartości null, ale nadal pojawia się błąd. to SQL Używam:Zmień kolumnę, aby nie zezwalała na wartości null

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

i jest to błąd otrzymuję:

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. 

Jestem całkiem pewien, że mój sql ma rację, i nie ma obecnie w null kolumna Próbuję zmienić, więc nie jestem naprawdę pewien, co powoduje problem. Jakieś pomysły? Jestem zdumiony.

+0

Wystąpił błąd wskazujący, że używasz instrukcji 'INSERT' lub' UPDATE', a nie instrukcji "ALTER TABLE". –

+3

czy jesteś w 110% pewny, że w tej kolumnie nie ma żadnych "pustych", błąd sugeruje, że są. –

+0

@a_horse_with_no_name nie jest to zdecydowanie skrypt zmiany – user2255811

Odpowiedz

8

Najwyraźniej tabela zawiera wartości NULL. Które można sprawdzić za pomocą:

select * 
from mydatabase 
where WeekInt is NULL; 

Następnie można zrobić jedną z dwóch rzeczy. Albo zmienić wartości:

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

Albo usuwać wiersze naruszające:

delete from mydatabase 
    where WeekInt is null; 

Wtedy, gdy wszystkie wartości są w porządku, można zrobić oświadczenie alter table.

+0

Czy można to zrobić w pojedynczej kwerendzie – Imad

Powiązane problemy