Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新查询MSSQL_C#_Sql Server_Sql Update - Fatal编程技术网

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
并且它把顶部1
c.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