【发布时间】:2015-01-03 01:02:06
【问题描述】:
在处理大表时,我们可以通过一个简单的UPDATE 语句批量执行。
WHILE 1 = 1
BEGIN
UPDATE TOP (5000)
dbo.LargeOrders
SET CustomerID = N'ABCDE'
WHERE CustomerID = N'OLDWO';
IF @@rowcount < 5000
BREAK;
END
使用MERGE 语句时,是否可以做类似的事情?据我所知,这是不可能的,因为您需要根据条件进行不同的操作。例如,匹配时为UPDATE,不匹配时为INSERT。我只是想确认一下,如果是真的,我可能需要切换到老式的UPDATE 和INSERT。
【问题讨论】:
标签: sql sql-server tsql merge batch-processing