Как изменить данные в столбцах по шаблону у множества таблиц?
Доброе утро.
Есть несколько таблиц(400+), в каждой из них есть разное кол-во столбцов, но в некоторых есть повторяющийся столбец.
Можно ли написать запрос, чтобы он проходил по всем таблицам в БД, искал столбец с определенным названием(совпадением) и менял там данные.
С заменой данных проблем нет, есть непонимание с первой частью задачи - поиск в БД всех таблиц, где есть определенный столбец.
Пример ниже (значения придуманы).
Есть 5 таблиц, в 4 есть столбец "Кто изменил". Нужно пройтись по всем таблицам сколько бы их не было, проверить есть ли такой столбец и заменить значения.
Для получения конкретного ответа следует указать не только конкретную СУБД, но и точную её версию.
С другой стороны, куда как проще безусловно прогнать изменяющий запрос по всем таблицам. Если такого поля нет, или у него неподходящий тип данных - ну выдаст сервер ошибку, да и фиг бы с ею. Ни на структуре, ни на данных эта ошибка никак не отразится. Потому что в выполнении запроса будет отказано ещё на этапе планирования его выполнения, до собственно выполнения дело и не дойдёт...
Очень сильно зависит от диалекта.
В MS SQL - кучка вьюшек sys.* включая sys.tables (и sys.system_objects) - в общем достаточно легко средствами sql решается вопрос по выявлению таблиц, полей и их модификаци... включая даже тяжелые перекраивания pk
(собсно и ssms пользуется ровно тем же)