Какое из следующих двух утверждений вы считаете наиболее эффективным для удаления большого количества строк?оптимизация оператора DELETE с подсчетом
Заявление # 1:
DELETE TOP (@count) FROM ProductInfo WHERE productId = @productid
Заявление # 2: Производная таблица
DELETE t1 FROM (SELECT TOP (@count) * from ProductInfo
WHERE productId = @productId v) t1
1. Что произойдет, если инструкция удаления не удалась? Продолжается ли она в цикле while? 2. Что произойдет, если удаление не удалось, задает ли строка row = 0 и ложно выходит из цикла? – RPS
Добавление обработки ошибок к каждому отдельному сообщению может раздувать образец и разбавлять значение примера. Но если вы явно запросите обработку ошибок, я бы рекомендовал обернуть их в блок BEGIN TRY/BEGIN CATCH. Затем вы обрабатываете ошибку соответствующим образом, исходя из того, что было ошибкой. –
Размер файла @batchSize, который приведет к блокировке Escalation, если только он не был отключен с помощью различных методов. – etliens