更新来自其他表的相关ID的表ID

时间:2015-03-03 13:56:00

标签: sql-server sql-update sql-order-by rows

我在更新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的行,这样我就不会覆盖已经填充的值。

1 个答案:

答案 0 :(得分:0)

试试这个: -

UPDATE [demo].[dbo].[SystemObject]
SET SystemPointId = (SELECT [demo].[dbo].[SystemPoint].[Id] FROM [demo].[dbo].[SystemPoint]) 
WHERE [demo].[dbo].[SystemObject].SystemPointId IS NULL;