根据条件从另一个表中插入具有特定值的表

时间:2011-03-03 01:53:26

标签: sql

我有一个名为Node with 4 columns的表,其中填充了除Lat和Long之外的所有字段的数据

  TABLE(
  ID int not null
  Column2 int not null
  Column3 int not null
  Column4 int not null
  LAT float 
  LONG float
)

我有另一个名为“test”的表,其中3列填充了日期

TABLE
( 
 ID,
  LAT
  LONG
)

如果来自测试的ID与来自节点的Id匹配,则相应的lat应该将来自test的长值插入到Node中。

我试过这样的事情,但它给了

INSERT INTO tblNode(x,y) 
SELECT tpn.Longitude,tpn.Latitude FROM dbo.Node n
    JOIN test tpn
    ON tpn.NodeID = n.NodeID

错误    无法将值NULL插入列'ID',表

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果您要创建新记录,则应包含ID

INSERT INTO tblNode(nodeID,x,y) 
SELECT tpn.nodeID, tpn.Longitude,tpn.Latitude FROM dbo.Node n
    JOIN test tpn
    ON tpn.NodeID = n.NodeID

但是,仔细查看您的问题,您不希望INSERT。您想要UPDATE

UPDATE n
SET Lat = tpn.Longitude, Lon = tpn.Latitude
FROM Node n
JOIN test tpn ON tpn.NodeID = n.NodeID