【发布时间】:2021-08-30 10:05:15
【问题描述】:
我需要在不创建新视图/表的情况下合并两个表。基本上,我只需要将一列添加到取自另一个表的现有表中。
我需要一个看起来像table2 的表,但有一个额外的列:programs_total。如果第一列中没有这样的id,我希望第二列有NULL。在此示例中,我希望 id=72_200 的原始数据在 programs_total 列中具有 NULL。
我尝试了以下脚本:
-- adding a new column
ALTER TABLE table2
ADD programs_total BIGINT NULL;
-- inserting new data
INSERT INTO table2 (programs_total)
SELECT programs_total
FROM table1
但它会产生以下错误:
Msg 515, Level 16, State 2, Line 4
Cannot insert the value NULL into column 'id', table 'stb.dbo.table2'; column does not allow nulls. INSERT fails.
The statement has been terminated.
我想它会尝试插入三个新行,而不是将列与现有行连接起来。如何告诉它将列加入现有行?
或者我做错了什么?
【问题讨论】:
-
好像你想要一个
UPDATE和一个JOIN,而不是一个INSERT。或者在`table1`中是否有值id的行没有出现在table2中?
标签: sql sql-server tsql ssms