2013-08-05 13 views
8

Quindi voglio modificare una colonna nel mio database SQL Server per non consentire i null, ma continuo a ricevere un errore. questo è l'istruzione SQL che sto usando:Modificare una colonna per non consentire i valori nulli

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

e questo è l'errore che sto ottenendo:

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. 

Sono abbastanza sicuro che il mio SQL è giusto, e non ci sono nulli attualmente in colonna sto cercando di cambiare quindi non sono davvero sicuro di ciò che sta causando il problema. Qualche idea? Sono perplesso.

+0

L'errore sembra indicare che si sta eseguendo un'istruzione 'INSERT' o' UPDATE', non un'istruzione 'ALTER TABLE'. –

+3

sei sicuro al 110% che non ci siano "valori nulli" in quella colonna, l'errore suggerirebbe di esserci. –

+0

@a_horse_with_no_name no è sicuramente un alter script – user2255811

risposta

8

Chiaramente, la tabella contiene i valori NULL. Che puoi verificare con:

select * 
from mydatabase 
where WeekInt is NULL; 

Quindi, puoi fare una delle due cose. O modificare i valori:

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

o eliminare le righe incriminate:

delete from mydatabase 
    where WeekInt is null; 

Poi, quando tutti i valori sono a posto, si può fare la dichiarazione alter table.

+0

Può essere eseguito in una singola query – Imad

Problemi correlati