将现有值插入新列

时间:2017-03-18 15:47:56

标签: mysql sql sql-server oracle tsql

我在已填充所有空值的现有表上创建了一个新列(column4)。我正在尝试使用链接服务器列中的现有值填充所有记录。插入的值必须与正确的行匹配。

这就像我似乎已经接近但是我现在收到以下错误。我甚至没有尝试更新该列。我只是引用它,所以新值知道插入值的位置。

INSERT INTO Server1.database.schema.table1 (Column4)
SELECT link.column6
FROM LinkedServer.database.schema.view as link
INNER JOIN Server1.database.schema.table1 as local
ON link.key = local.key
WHERE local.key = link.key
  

Msg 515,Level 16,State 2,Line 212
  无法将值NULL插入列'key',表'local';列不允许空值。 INSERT失败。   声明已经终止。

1 个答案:

答案 0 :(得分:1)

对于sql server,您需要使用update而不是insert

update local
set local.Column4 = link.column6
from LinkedServer.database.schema.view link
  inner join Server1.database.schema.table1 local
    on link.key = local.key