1
Tempからデータを取り出してWordテーブルに格納するこのMERGEステートメントを作成しました。ここでは温度のスキーマです:ここではプライマリテーブルを更新しようとするとSQL Mergeが失敗する
CREATE TABLE [dbo].[Temp] (
[Word] VARCHAR (MAX) NULL,
[SFI] REAL NULL,
[U] INT NULL,
[D] REAL NULL
);
はMERGEです:
MERGE [dbo].[Word] as target
USING [dbo].[Temp] as source
ON target.[WordId] = source.[Word]
WHEN MATCHED THEN
UPDATE SET [NAWL963SFI] = source.[SFI], [NAWL963U] = source.[U], [NAWL963D] = source.[D]
WHEN NOT MATCHED THEN
INSERT ([WordId],[NAWL963SFI],[NAWL963U], [NAWL963D], [NAWL963])
VALUES (source.[Word],source.[SFI],source.[U], source.[D], 1);
それはそれは私がチェックし、何のヌルが中に存在しない
Msg 515, Level 16, State 2, Line 41
Cannot insert the value NULL into column 'WordId', table 'ab.dbo.Word'; column does not allow nulls. UPDATE fails.
The statement has been terminated.
」と言って私にエラーを与えて実行すると温度
SELECT count(*) from Temp where Word = null;
私はこれをどのようにデバッグすることができるか、または私がマージをやっているやり方に何か間違っていることについて、何か提案がありますか?
SELECT count(*) from Temp where Word is null;
はchaning試してみてください。
することができますP 'Word'テーブルのスキーマは? WordID列はNULL値を許可していないようです。 – Sandesh