Я обновляю таблицу на SQL Server с примерно 100 различными условиями. Ниже приведен список примеров обновления SQL, который я делаю.Обновление таблицы на SQL Server с помощью пользователя
Проблема в том, что таблица mytable.table1
немного большая (имеет 2 миллиона строк). Эти 100 запросов обновления вместе занимают более 10 минут.
Есть ли способ создать определенную пользователем функцию для обновления таблицы с меньшим количеством запросов. У меня нет указателя в таблице. Каждый запрос на обновление должен пройти всю таблицу.
Я немного прочитал о пользовательских функциях в SQL Server, не нашел слишком много о моей ситуации.
-------------------- ОБНОВЛЕНИЕ 1 ------------------------ -------
мои запросы обновления не только обновляют столбец до одного значения.
update p
set p.column1 = 'abc'
from mytable.table1 p
where p.column2 = 'a' and p.column3 = 'b'
update p
set p.column1 = 'edf'
from mytable.table1 p
where p.column2 = 'c' or p.column4 = 'd'
update p
set p.column1 = 'wxf'
from mytable.table1 p
where p.column3 = 'd' and p.column5 = 'f'
update p
set p.column1 = 'xyz'
from mytable.table1 p
join mytable.table2 c on p.column1 = c.column1
where p.column2 = 'w' and p.column3 = 'a'
update p
set p.column1 = 'ere'
from mytable.table1 p
join mytable.table2 c on p.column1 = c.column1
join mytable.table3 r on p.column2 = r.column2
where p.column2 = 'w' and p.column3 = 'b' or p.column4 = 'a'
Спасибо за ваш ответ. Я недостаточно четко сформулировал свою точку зрения. Это не только устанавливает столбец 1 в «abc», есть случаи, чтобы установить p.column1 = 'def'. – Payson
В этом случае вы можете сделать что-то вроде: SET p.column1 = CASE WHEN p.column2 = 'a' И p.column3 = 'b' THEN 'abc' КОГДА p.column2 = 'c' И p.column4 = 'd' THEN 'def' ... END –