Sql для обновления значений столбцов значениями из других столбцов для нескольких таблиц - PullRequest
0 голосов
/ 16 января 2020

У меня есть несколько таблиц, содержащих столбцы «Name» и «NameEN».

Мне нужно обновить столбец «NameEN» значениями из столбца «Name»

Я знаю, как обновить один таблиц с

Update Table
set NameEN = Name

, и я знаю, как получить список таблиц, содержащих столбец «NameEN»

SELECT      c.name  AS 'ColumnName'
            ,t.name AS 'TableName'
FROM        sys.columns c
JOIN        sys.tables  t   ON c.object_id = t.object_id
WHERE       c.name LIKE '%NameEN%'
ORDER BY    TableName
            ,ColumnName;

Можно ли как-то объединить 2 запроса, чтобы обновить все таблицы, содержащие столбец «NameEN»?

Я использую mssms, а сервер работает с ms sql server 14.0.1, если это важно.

1 Ответ

0 голосов
/ 16 января 2020

Вы можете использовать команду EXECUTE sp_execute sql: Вы можете найти пример по ссылке: https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql?view=sql-server-ver15 Вы можете построить оператор sql по запросу системной таблицы, чтобы найти таблицы, которые вам нужны обновить и затем передать результаты в функцию sp_execute sql. Вы можете использовать курсор для l oop просмотра результатов или просто скопировать полученные операторы в редактор кода и запустить его вручную.

...