更新查询MSSQL

时间:2017-09-20 17:56:46

标签: c# sql-server sql-update

UPDATE Record  SET Record.CreateID = c.CreateID
FROM  @RecordIDList  r ,@CreateIDList c  
WHERE r.ID = Record.ID  

此处@RecordIDList@CreateIDList是输出子句,作为多行的范围标识,此查询正常工作我现在面临的唯一问题是@RecordIDList是否有5个ID记录它正在更新记录表,但是对于所有5行使用相同的c.CreateID进行更新,并将其放在前1 c.CreateID。 我错过任何事情或做错事吗?我正在使用SSMS 2014

Record.ID  | Content | CreateID
-------------------------
         1 | Khar    | 1
         2 | SantaCr | 2
         3 | Sion    | 3
         4 | VT      | 4
         5 | newFort | 5
         6 | Bandra  | 6
         7 | Worli   | 7


 CreateID  | Date       | 
-------------------------
         1 | 21-09-2017 |  
         2 | 21-09-2017 | 
         3 | 21-09-2017 | 
         4 | 21-09-2017 | 
         5 | 21-09-2017 | 
         6 | 21-09-2017 | 
         7 | 21-09-2017 | 

1 个答案:

答案 0 :(得分:0)

是@RecordIDList和@CreateIDList表变量吗?如果是这样,这将从@CreateIDList:

中的匹配记录更新@RecordIDList
UPDATE r
    SET r.CreateID = c.CreateID
FROM @RecordIDList  r
    JOIN @CreateIDList c 
        ON c.ID = r.ID