C# 仅更新由两个表的交叉联接(SQL)中的字段值匹配的行
以下是需要做的事情: 匹配SQL Server中不同表中的2个字段(完成),更新表1中的字段,其中table1.field1=table2.field2(问题是,它只更新表中的所有记录) 以下是我所拥有的,其中,EntertableName是为查询目的导入到SQL Server的表:C# 仅更新由两个表的交叉联接(SQL)中的字段值匹配的行,c#,sql,sql-server,C#,Sql,Sql Server,以下是需要做的事情: 匹配SQL Server中不同表中的2个字段(完成),更新表1中的字段,其中table1.field1=table2.field2(问题是,它只更新表中的所有记录) 以下是我所拥有的,其中,EntertableName是为查询目的导入到SQL Server的表: “更新表1集合表1.fieldN=”“+DateTime.Now.DayOfYear+”,从“+atterablename+”交叉连接表1,其中(“+atterablename+”.fieldX=Table1.fi
“更新表1集合表1.fieldN=”“+DateTime.Now.DayOfYear+”,从“+atterablename+”交叉连接表1,其中(“+atterablename+”.fieldX=Table1.fieldY)”
以下是我得出的结论:
就实际功能而言,FROM的之后的所有内容都是无用的,它运行查询,但结果不会以任何方式“链接”到实际的UPDATE
语句
总而言之:
我计算出的查询更新了表1中的所有记录,我需要该查询只更新在FROM
请原谅我,如果这看起来很琐碎,而且我还没有做过研究,但事实是,两周前我甚至从未听说过SQL,并且在很大程度上依赖于SO来指导和建议。你的交叉连接
应该是内部连接
"UPDATE t1
SET fieldN ='" + DateTime.Now.DayOfYear + "'
FROM " + tempTableName + " t2 INNER JOIN Table1 t1 ON t1.fieldy = t2.fieldx"
再次感谢你,这是怎么回事?您举的例子是一个SELECT
语句。我不相信这种行为会转化为UPDATE
语句。在任何情况下,显式内部联接都是两种情况下的首选方式。