|  | Можно ли так сделать в запросе sql | ☑ | 
    
        | 0
    
        1ctube   18.04.23✎ 09:28 | 
        Доброго времени суток. Вопрос по запросу на sql: есть БД. она содержит много таблиц, в каждой таблице произвольное количество полей. Необходимо найти значение допустим '74aa85c' и заменить его на '11aa79'. Оно может содержаться в любой таблице, в любом поле. Можно ли написать такой запрос, без указания конкретных таблиц и полей?     |  | 
    
        | 1
    
        NorthWind   18.04.23✎ 09:33 | 
        Скуль в общем случае заточен на структурированные данные, а это подразумевает, что вы точно знаете, где, что и на что менять.
Если нет, то реляционная модель данных не годится, нужна какая-нибудь другая. И скуль тоже не годится.
 |  | 
    
        | 2
    
        Волшебник   18.04.23✎ 09:36 | 
        (0) Зачем?     |  | 
    
        | 3
    
        NorthWind   18.04.23✎ 09:42 | 
        не, ну если очень надо, то сделать, конечно, можно. В любой БД есть способ получить метаданные о наименованиях таблиц и столбцов - например, из системных представлений, как в оракле том же. Соответственно пишете скрипт, который запускает необходимое количество SQL-я по всем требуемым таблицам и столбцам, и дело в шляпе.     |  | 
    
        | 4
    
        Грю   19.04.23✎ 00:19 | 
        (0) Без процедур в запросе вряд ли получится. Одним запросом нужно вытащить названия таблиц, а другим запросом пробежаться по всем этим таблицам и обновить данные. Проблема в том, что название таблицы из результатов запроса нельзя подставить в другой запрос, без использования переменных. Поэтому только процедуры или вообще скрипт.
 Еще, как вариант, отключить сервер SQL, и в файлах БД текстовым поиском заменить все нужные подстроки.
 |  | 
    
        | 5
    
        Garykom   19.04.23✎ 00:28 | 
        (0) В общем случае нельзя.
Простейший вариант это зная имена всех таблиц и что в каждой таблице есть ключевое поле id.
 Можно упростить работу путем выгрузки каждой таблицы (или даже всех разом) в sql-текст аля insert ... from  ...
 Затем там сделать замену и изменив запрос на update ... where id=... выполнить его
 |  | 
    
        | 6
    
        Garykom   19.04.23✎ 00:29 | 
        (5) *аля insert ... to ...     |  |