使用新值更新临时表中的列

Mel*_*lie 3 sql database insert

我有以下临时表结构:

CREATE TABLE #TempTable  (  
    ID INT,  
    CId TINYINT,  
    TagId INT,  
    Beginning_X DECIMAL(18,5),  
    Beginning_Y DECIMAL(18,5),  
    Ending_X DECIMAL(18,5),  
    Ending_Y DECIMAL(18,5))  

INSERT INTO #TempTable (ID, CId, TagId, Beginning_X, Beginning_Y)  
SELECT ID, CId,TagId, X, Y  
  FROM Table_1  
 WHERE IsRepeat = 1  

INSERT INTO #TempTable(Ending_X, Ending_Y)   
SELECT X,Y  
  FROM Table_1 t  
 WHERE t.ID IN (SELECT ID+1
                  FROM Table_1
                 where IsRepeat = 1))  
Run Code Online (Sandbox Code Playgroud)

第二次插入删除了第一个插入语句中的所有值,我不明白为什么。我想将第二次插入的结果附加到第一次插入,并有一个实体表。

编辑:我想我找到了解决方案:

UPDATE t  
SET t.Ending_X = p.X, t.Ending_Y = p.Y  
FROM  #TempTable t, Table_1 p  
WHERE p.ID IN (SELECT ID+1 FROM Table_1 where IsRepeat = 1)  
AND p.ID-1 = t.ID
Run Code Online (Sandbox Code Playgroud)

rs.*_*rs. 5

我想你需要这个

UPDATE t
SET Ending_X = X, Ending_Y = Y
FROM  #TempTable t
WHERE t.ID IN (SELECT ID+1 FROM Table_1 where IsRepeat = 1)) 
Run Code Online (Sandbox Code Playgroud)