Через несколько лет я снова посещаю MS SQL, поэтому извиняюсь за базовый c вопрос!
Я выполняю некоторую очистку адресных данных, чтобы расширить аббревиатуры, такие как DR, в 'DRIVE', RD в 'ROAD' и т. Д. c, чтобы помочь в идентификации дублирующих адресов.
Я изучаю способы оптимизировать мой запрос, взяв мой существующий блок из 10 последовательных операторов SET .. WHERE .. в пакет или каким-либо другим методом, так как я работаю над приблизительно 500k записями.
Когда я преобразовал свой блок существующего SET. WHERE .. операторы в простой пакет, это приводит к ошибке "неправильный синтаксис рядом с ключевым словом, где". У кого-нибудь есть какие-либо идеи или предложения, чтобы решить эту проблему? Вот как выглядит код (с урезанным списком операторов SET .. WHERE ..):
declare @batchSize int = 10000;
declare @rows int = -1;
while @rows <> 0
begin
raiserror('Beginning loop. Last ROWCOUNT was %d',0,1, @rows) with nowait;
update top (@batchSize) DBO.POSTAL_ADDRESS_MATCH_1
SET ADDRESS1=REPLACE(ADDRESS1,' DR',' DRIVE') WHERE RIGHT(ADDRESS1,3) LIKE ' DR'
-- 9 other SET WHERE statements go here
where ID between @startID and @startID + @batchSize;
set @rows = @@ROWCOUNT;
set @startID += @batchSize;
end;
Заранее большое спасибо за вашу помощь.