我有一个名为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',表
有人可以帮我解决这个问题。
答案 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