使用备份表批量进行有效更新

时间:2015-10-15 10:52:10

标签: sql sql-server sql-server-2008 tsql sql-update

我已经从tableA备份了一些数据。所以我通过以下方式做到了这一点: -

select * into backuptable_tableA from tableA
where column1= 'Value1' and column2 = 'Value2'

备份包含大约185,000行,如上所示称为backuptable_tableA

现在在tableA中我需要使用值'LAMK'更新1列(column1)。现在任何人都可以建议一个有效的SQL查询,它可以批量更新tableA中的column1。我们一次说10,000行? SQL应该在更新前10,000后停止,然后我可以检查数据并执行下一个10,000等等...也无论如何确保通过加入backuptable_tableA来实现这一点? (为了论证,让tableA作为column1,column2,column3和column4的唯一约束)。

..或者我在进行备份时使用的更新中是否必须使用相同的参数?

由于

1 个答案:

答案 0 :(得分:0)

过去使用while循环为我工作的东西 https://msdn.microsoft.com/en-gb/library/ms178642.aspx

,(
    ISNULL([era_project_data_analysis].annual_spend_after_implementation,
        ISNULL([era_project_data_analysis].annual_spend_after_selection,
            ISNULL([era_project_data_analysis].annual_spend_after_recommendations,
                [era_project_data_analysis].estimated_annual_spend              
            )
        )
    )       
) AS [Annual Spend],

您可以在循环内添加检查并根据需要回滚事务。

HTH