我在更新sql中的表时遇到问题。 我有两张桌子。
系统对象表:
Id SystempointID
1 NULL
2 NULL
3 NULL
SystemPoint表:
Id othercolumn
11测试点
12 testpoint2
13 testpoint 3
我需要使用systempoint Id更新systemobject表。他们需要按顺序匹配。这就是我的SystemObject表必须是:
系统对象表:
Id SystempointID
1 11
2 12
3 13
我有500多个这些ID,所以我想知道我必须使用哪个查询来自动填充systemobject表和systempoint Id。最高系统点ID必须与最高系统对象ID匹配 我试过这段代码:
UPDATE [demo].[dbo].[SystemObject]
SET SystemPointId = (SELECT [demo].[dbo].[SystemPoint].[Id] FROM [demo].[dbo].[SystemPoint]
WHERE SystemPoint.Id = (SELECT MAX(ID) FROM [demo].[dbo].[SystemPoint]))
当我使用这段代码时,我在systemobject列的所有行中得到一个值(最高的系统点id)。我只想填写值为NULL的行,这样我就不会覆盖已经填充的值。
答案 0 :(得分:0)
试试这个: -
UPDATE [demo].[dbo].[SystemObject]
SET SystemPointId = (SELECT [demo].[dbo].[SystemPoint].[Id] FROM [demo].[dbo].[SystemPoint])
WHERE [demo].[dbo].[SystemObject].SystemPointId IS NULL;