我已經添加了一個新的列(NewValue)到我的表,其中包含一個int並允許空值。現在我想更新列,但是我的insert語句只嘗試更新表中的第一列,而不是我指定的列。不能將值NULL插入列錯誤顯示錯誤的列名稱
我基本上開始,我把我的初始數據到一個臨時表,它有兩列這樣的:
create table #tempTable
(
OldValue int,
NewValue int
)
然後我做一個插入到該表,並基於這些信息的NewValue可以爲空。在#tempTable
示例數據:
OldValue NewValue
-------- --------
34556 8765432
34557 7654321
34558 null
一旦這完成我的計劃要插入的NewValue到主表中,像這樣:
insert into myPrimaryTable(NewValue)
select tt.NewValue from #tempTable tt
left join myPrimaryTable mpt on mpt.Id = tt.OldValue
where tt.NewValue is not null
我只想要的NewValue插入到myPrimaryTable行Id與OldValue匹配。但是,當我嘗試執行此代碼時,出現以下錯誤:
無法將值NULL插入到'myCode'列中,表'myPrimaryTable';列不允許有空值。 INSERT失敗。
但我沒有試圖插入'myCode',我指定'NewValue'作爲列,但它似乎沒有看到它。我檢查過NewValue,它被設置爲允許int,並且被設置爲允許null,並且它存在於正確的數據庫右表中。列'myCode'實際上是表中的第二列。有人可以請指出我正確的方向與這個錯誤?
在此先感謝。
謝謝,這是一個了不起的答案,很好的解釋。 :) –