2013-08-05 59 views
8

Vì vậy, tôi muốn thay đổi một cột trong cơ sở dữ liệu SQL Server của mình để không cho phép null, nhưng tôi vẫn gặp lỗi. đây là báo cáo sql Tôi đang sử dụng:Thay đổi một cột để không cho phép null

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

và đây là lỗi Tôi nhận:

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. 

Tôi khá chắc chắn sql của tôi là đúng, và không có null hiện trong cột Tôi đang cố gắng thay đổi vì vậy tôi thực sự không chắc chắn về những gì đang gây ra vấn đề. Bất kỳ ý tưởng? Tôi bối rối.

+0

Có lỗi dường như cho biết bạn đang chạy câu lệnh 'INSERT' hoặc' UPDATE', không phải là câu lệnh 'ALTER TABLE'. –

+3

là bạn chắc chắn 110% rằng không có bất kỳ 'nulls' trong cột đó, lỗi sẽ gợi ý có. –

+0

@a_horse_with_no_name không có nó chắc chắn là một kịch bản thay đổi – user2255811

Trả lời

8

Rõ ràng, bảng có giá trị NULL trong đó. Bạn có thể kiểm tra bằng cách nào:

select * 
from mydatabase 
where WeekInt is NULL; 

Sau đó, bạn có thể thực hiện một trong hai điều. Hoặc thay đổi các giá trị:

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

Hoặc xóa các hàng vi phạm:

delete from mydatabase 
    where WeekInt is null; 

Sau đó, khi tất cả các giá trị là okay, bạn có thể làm báo cáo kết quả alter table.

+0

Nó có thể được thực hiện trong một truy vấn – Imad

Các vấn đề liên quan