我需要逐行更新 SQL 表中的数万行。如何通过一些批量更新
或其他东西来加速这种情况?我们使用 SQL Server 2008。
编辑:我需要从 C#
而不是存储过程更新行(发出 SQL),因为逻辑很复杂。比方说,我需要单独“重新测试”每一行。
Edit2:我们需要“更新”整个表格(每一行)。是否可以按 block 加载表,在内存中更新它们并保存回数据库???如何使用 C#?
最佳答案
这里有很多假设,但是如何创建一个 user defined table type 呢?在您的业务层中,用所有需要立即更新的行填充该内存表,然后调用执行适当的、基于集合的更新的过程。
CREATE PROC dbo.RBARBane(@tvp dbo.MyUserDefinedTableType)
AS
BEGIN
UPDATE
T
SET
col1 = TVP.col1
-- all the columns that need updated
FROM
dbo.Table T
INNER JOIN
@tvp TVP
ON TVP.key1 = T.key1
END
关于c# - 使用 C# 批量更新数千条 SQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394078/