c# - 使用 C# 批量更新数千条 SQL 行

标签 c# sql sql-server-2008

我需要逐行更新 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/

相关文章:

sql - 在 sql server 中启用用户

mysql - 添加表中每一行的值并输出(将 JSON 字符串转换为 int)

python - 从 MSSQL 运行 Python 脚本

c# - 如何检查Windows用户是否设置了密码?

c# - 如何使用适用于 .NET 的 Azure 存储客户端库 (BLOBS) 列出所有虚拟目录和子目录

c# - 如何在不考虑平台的情况下在 C# 应用程序中使用 C++ 类?

c# - 使用表达式树通过代理现有实现来实现接口(interface)

mysql - 尽管数据看似合适,但插入时为 "String or binary data would be truncated"

sql表透视或转换

sql-server - 将 xml 列值包装到外部以进行 xml 路径查询