我試圖插入到一個表使用選擇並添加一些額外的列。額外的列有默認值和一個被默認所以不知道序列填充爲什麼我不能做: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.
我已經測試了我的序列和它的工作正常。
任何見解最受讚賞。
編輯:我認爲,第一個例子是可能的,如果額外的列或者提供了一個默認值或可爲空。我的錯。 第二個例子的問題是什麼?我清楚地從ADDRESS_HIST_ID的序列中提供一個值。
錯誤消息非常明確。 –
爲表格添加模式將會很有幫助。使用相應的軟件(MySQL,Oracle,DB2,...)和版本(例如, '的SQL服務器2014'。 – HABO