selectを使用してテーブルに挿入しようとしました。余分な列にはデフォルト値を持っていると私が行うことができない理由1はそれほどわからない、デフォルトで順序によって移入されます。選択と追加の列がデフォルト値で設定されたT-SQL挿入
insert into ADDRESS_HIST
select * from ADDRESS;
取得エラー:
Msg 213, Level 16, State 1, Line 3
Column name or number of supplied values does not match table definition.
insert into ADDRESS_HIST
select
*,
null as [END_DATE],
getdate() as [EFFECTIVE_DATE],
next value for ADDRESS_HIST_ID_SEQ as [ADDRESS_HIST_ID]
from
ADDRESS;
エラー:
Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'ADDRESS_HIST_ID', table 'ADDRESS_HIST'; column does not allow nulls. INSERT fails.
私は自分のシーケンスとそれが正常に動作していることをテストしました。
洞察力が最も高く評価されています。
編集:最初の例は、余分な列がデフォルト値またはNULL可能である場合に可能であると考えました。私の間違い。 2番目の例の問題点は何ですか?私は明らかにADDRESS_HIST_IDのシーケンスから値を供給しています。
エラーmsgは非常に明示的です。 –
テーブルのスキーマを追加すると便利です。適切なソフトウェア(MySQL、Oracle、DB2など)とバージョンの両方でデータベースの質問にタグを付けると便利です。 'sql-server-2014'です。 – HABO