Обновить все вхождения указанного столбца c во всей базе данных - PullRequest
0 голосов
/ 31 марта 2020

У меня есть таблица активов и сборка (столбец) во многих таблицах использования

Я хочу обновить все вхождения таблиц во всех вхождениях вставок в базу данных

Assembly (столбец) WHERE значение имеет от 878 до 1 ОТ все таблицы в базе данных

Я знаю нормальное обновление

update AdminInterests set assetid = 1 where 878

Я просто хочу, чтобы применить обновление через всю базу данных во всех таблицах

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Вы можете использовать этот запрос для создания всех необходимых операторов UPDATE.

SELECT 'UPDATE ' + T.TABLE_SCHEMA + '.' + T.TABLE_NAME + ' SET assetid  = 1 where asssetid = 878;'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C
ON T.TABLE_NAME = C.TABLE_NAME
AND c.COLUMN_NAME ='assetid'

И затем вы можете выполнить эти операторы UPDATE.

Пример демонстрации здесь

1 голос
/ 31 марта 2020

Одним из возможных решений является то, что вы можете прочитать таблицы метаданных базы данных и создать динамический запрос c, чтобы найти все столбцы / атрибуты, которые вы хотите обновить, а затем запустить обновление для них. Для этого достаточно много работы, но есть решение. Это также программное c решение, а не то, которое вы можете сделать с помощью запроса.

...