2015-03-03 94 views
1

我無法更新SQL中的表。 我有兩張桌子。更新表ID與其他表中的相關ID

SYSTEMOBJECT表:

Id SystempointID

1 NULL

2 NULL

3 NULL

SystemPoint表:

Id othercolumn

11 testpoint

12 testpoint2

13 testpoint 3

我需要與systempoint標識更新SYSTEMOBJECT表。他們需要按順序匹配。這是我的SYSTEMOBJECT表如何必須是:

SYSTEMOBJECT表:

Id SystempointID

1 11

2 12

3 13

我有這些ID的500+,所以我想知道我必須使用,以填補我SYSTEMOBJECT表與哪個查詢系統點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列得到所有行的一個值(最高systempoint ID)。我只想填寫有NULL值,這樣我不會覆蓋我的價值觀已經填行

+0

你要填寫最大值或獨特的價值。 – 2015-03-03 14:01:48

+0

最大值@ankit Bajpai – user3142048 2015-03-03 14:04:34

回答

0

試試這個: - 。

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

謝謝,NULL值現在被填入。但我仍然得到相同的系統點ID。我得到13三次而不是11 12 13 – user3142048 2015-03-03 14:33:07

+0

哦。這意味着您始終需要獨特的價值。 – 2015-03-03 14:35:00

+0

現在看到我的編輯.. – 2015-03-03 14:36:32

相關問題