C# 更新查询MSSQL
这里的C# 更新查询MSSQL,c#,sql-server,sql-update,C#,Sql Server,Sql Update,这里的@RecordIDList和@CreateIDList是作为多行范围标识的输出子句。此查询工作正常。我现在面临的唯一问题是,如果@RecordIDList有5个记录ID,它将更新记录表,但对所有5行都使用相同的c.CreateID并且它把顶部1c.CreateID。 我是否错过了什么或做错了什么?我正在使用SSMS 2014 UPDATE Record SET Record.CreateID = c.CreateID FROM @RecordIDList r ,@CreateIDLi
@RecordIDList
和@CreateIDList
是作为多行范围标识的输出子句。此查询工作正常。我现在面临的唯一问题是,如果@RecordIDList
有5个记录ID,它将更新记录表,但对所有5行都使用相同的c.CreateID
并且它把顶部1c.CreateID
。
我是否错过了什么或做错了什么?我正在使用SSMS 2014
UPDATE Record SET Record.CreateID = c.CreateID
FROM @RecordIDList r ,@CreateIDList c
WHERE r.ID = Record.ID
@RecordIDList和@CreateIDList是表变量吗?如果是这样,这将从@CreateIDList中的匹配记录更新@RecordIDList:
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 |
至于问题手,我们需要一些东西来配合。至少样本数据和表格结构。@SeanLange两只鸟,一块石头;)@萨米我猜我的情况是两块石头,一只鸟?我想我可以用这种方式从多个侧面击中它。:)这真的是你的疑问吗?它应该会引发语法错误。请参阅表结构
UPDATE r
SET r.CreateID = c.CreateID
FROM @RecordIDList r
JOIN @CreateIDList c
ON c.ID = r.ID