【发布时间】:2017-01-10 18:24:54
【问题描述】:
我有一个 SQL Server 数据库表,我需要使用从外部源检索到的 C# 应用程序 DataTable 中的值来更新它(它可能来自文件、外部 API 调用等,我猜这无关紧要) .
有没有办法使用类似于以下的 SQL 进行“大规模”更新:
UPDATE myTable1 t1
SET custAddress = t2.address
FROM myTable2 t2
WHERE t1.id = t2.id
我想我可以使用上面的示例,只要两个表都在同一个 SQL Server 数据库中;但在本例中,myTable2 是应用程序 (C#) DataTable 而不是 SQL Server 表。
有没有办法完成类似于上面的更新?
我知道我可以“循环”遍历每个应用程序表行并为每一行触发 SQL 更新,但如果我的数据表有数千行,我不希望(只要可能)必须执行一个 SQL更新我需要更新的每一行。
任何帮助将不胜感激。我愿意接受涉及 LINQ 或任何其他 C# 或 SQL 逻辑的解决方案或建议。
【问题讨论】:
-
您必须为此编写代码。没有内置函数可以大规模执行。
-
批量加载到 SQL 中的临时表,然后更新所有行
标签: c# sql sql-server linq