sql update column, где имя столбца равно USER_KEY - PullRequest
0 голосов
/ 28 мая 2018

Я хотел бы обновить все столбцы с именем столбца 'USER_KEY' до значения 'admin'.Возможно ли это сделать?

Я могу получить все имена таблиц и столбцов с указанным именем столбца со следующим sql script :

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 '%USER_KEY%'
ORDER BY    TableName
            ,ColumnName;

Но я не знаю, как их использоватьв заявлении об обновлении.

1 Ответ

0 голосов
/ 28 мая 2018

Этого можно добиться с помощью PL / SQL (обратите внимание, что это синтаксис оракула, но идея должна быть такой же для SQL-сервера и другого SQL).что-то вроде следующего: создайте детали списка / таблицы, передайте значения, опираясь на операторы обновления SQL и выполнив оператор в цикле ...

SET AUTOCOMMIT ON
BEGIN
FOR my_table_colums in (
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 '%user_key%'
order by    tablename
            ,columnname)
LOOP
/*-- build your dynamic sql and assign to a variable --*/
mysql_update_statement := 'update '||table_colums.tablename ||' set  '||table_colums.columnname||'= '''admin''';

/*-- display your dynamic update sql--*/
DBMS_OUTPUT.PUT_LINE(mysql_update_statement );

/*-- execute your dynamic update sql--*/
EXECUTE IMMEDIATE mysql_update_statement;
END LOOP;
END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...