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 |
答案 0 :(得分:0)
是@RecordIDList和@CreateIDList表变量吗?如果是这样,这将从@CreateIDList:
中的匹配记录更新@RecordIDListUPDATE r
SET r.CreateID = c.CreateID
FROM @RecordIDList r
JOIN @CreateIDList c
ON c.ID = r.ID