नल

2013-08-05 10 views
8

की अनुमति न देने के लिए कॉलम बदलें, इसलिए मैं अपने SQL सर्वर डेटाबेस में एक कॉलम को नल की अनुमति न देने के लिए बदलना चाहता हूं, लेकिन मुझे एक त्रुटि मिल रही है। इस एसक्यूएल बयान मैं उपयोग कर रहा हूँ है:नल

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

और इस त्रुटि मैं हो रही है:

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. 

मैं बहुत यकीन है कि मेरे एसक्यूएल सही है हूँ, और कोई nulls में वर्तमान में देखते हैं कॉलम मैं बदलने की कोशिश कर रहा हूं इसलिए मुझे वास्तव में यकीन नहीं है कि समस्या का कारण क्या है। कोई विचार? मैं उलझन में हूं।

+0

त्रुटि यह इंगित करती है कि आप 'INSERT' या' UPDATE' कथन चला रहे हैं, न कि 'वैकल्पिक तालिका' कथन। –

+3

क्या आप 110% सुनिश्चित हैं कि उस कॉलम में कोई भी 'शून्य' नहीं है, त्रुटि यह बताएगी कि वहां हैं। –

+0

@a_horse_with_no_name नहीं, यह निश्चित रूप से एक स्क्रिप्ट – user2255811

उत्तर

8

स्पष्ट रूप से, तालिका में NULL मान हैं। जिसके साथ आप जांच सकते हैं:

select * 
from mydatabase 
where WeekInt is NULL; 

फिर, आप दो चीजों में से एक कर सकते हैं। या तो मूल्यों को बदल:

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

या हटाना अपमानजनक पंक्तियाँ:

delete from mydatabase 
    where WeekInt is null; 

तब, जब सभी मूल्यों ठीक हैं, तो आप alter table बयान कर सकते हैं।

+0

यह एकल क्वेरी में किया जा सकता है – Imad

संबंधित मुद्दे