16

そのため、SQL Server データベースの列を変更して null を許可しないようにしたいのですが、エラーが発生し続けます。これは私が使用している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.

私のSQLが正しいと確信しており、変更しようとしている列に現在nullがないため、何が問題を引き起こしているのか本当にわかりません。何か案は?私は困惑しています。

4

3 に答える 3

17

明らかに、テーブルにはNULL値が含まれています。あなたがチェックできるもの:

select *
from mydatabase
where WeekInt is NULL;

次に、次の 2 つのいずれかを行うことができます。値を変更します。

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

または、問題のある行を削除します。

delete from mydatabase
    where WeekInt is null;

次に、すべての値に問題がなければ、alter tableステートメントを実行できます。

于 2013-08-06T00:11:03.790 に答える
0

これは機能します。デフォルト値を送信すると、この例では以前のすべてのレコードが -1 に変更されます。

テーブルの変更 [dbo].[mydatabase] 列の変更 WeekInt int null ではない DEFAULT '-1';

于 2021-05-27T16:26:19.587 に答える