使用SQL Server批量更新基于主键列表

时间:2016-03-03 18:39:41

标签: sql-server entity-framework

我正在处理数百万行的数据库中的数据。我从数据库中提取了一批1000件物品并处理它们没有问题。我没有加载整个实体,我只是为批次提取了几列数据。

我想要做的是将1000行标记为使用单个SQL命令处理。

类似的东西:

UPDATE dbo.Clients 
SET HasProcessed = 1 
WHERE ClientID IN (...)

......只是一个整数列表。

上下文

  • Azure SQL Server 2012
  • 实体框架
    • Database.ExecuteSqlCommand

我知道我可以将命令构建为纯字符串,但这意味着不使用任何SqlParameter并且不会从查询计划优化中受益。

此外,我发现了一些有关表值参数的信息,但这需要创建一个表类型和一些我想避免的开销。毕竟这只是一个整数列表。

问题

是否有一种简单(高效)的方式可以忽略实体框架或ExecuteSqlCommand

如果没有,并且使用表值参数是最好的方法,你能否提供一个完整的例子,说明如何将整数列表转换为最简单的类型并使用上述查询运行它?

0 个答案:

没有答案