2015-10-15 61 views
0

我有一些從tableA備份的數據。所以我這樣做是通過以下操作: -使用備份表進行批量高效更新

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

備份包括約185000行,如上圖所示叫做backuptable_tableA

現在表A中,我需要用值來更新1列(列1) 'LAMK'。現在任何人都可以提出一個有效的SQL查詢,它可以更新tableA中的column1但是批量更新。假設一次有10,000行?在更新第一個10,000之後,SQL應該停止,然後我可以檢查數據並執行下一個10,000等等......無論如何,確保它通過加入backuptable_tableA來完成此操作? (爲了參數,讓我們說tableA作爲column1,column2,column3和column4的唯一約束)。

..或者我需要在備份中使用的更新中使用相同的參數嗎?

感謝

回答

0

東西是用一個while循環 https://msdn.microsoft.com/en-gb/library/ms178642.aspx

set rowcount 10000 
declare @rc int 
set @rc =1 
while @rc !=0 
begin 

    update TableA set column1 = 'LAMK' 
    where column1 != 'LAMK' 
     and column2 = ... 
     and column3 = ... 
     and column4 = ... 
    select @rc = @@rowcount 
end 
go 

您可以添加檢查,內環路,並根據需要回滾事務工作對我來說過去。

HTH