我有一个包含多个表的数据库,其中很少有表名,如STD *。所有表STD *都有名为userTag的列。 所以
首先我想列出名称与STD *
然后将每行的userTag更新为"通话"
我可以使用第1项 Get all table names of a particular database by SQL query? 但我如何将其结果与第2项结合起来呢?
答案 0 :(得分:0)
您可以在TABLES
上查询表information_schema
以匹配名称,但您无法在单个查询中使用它们。您可以编写存储过程来执行此操作:
SQL query dynamic table name in FOR
答案 1 :(得分:0)
- 首先我想列出名称匹配的那个数据库的所有表 STD *
醇>
您可以使用以下查询找到所有表名。
use databasename --replace this with your db name
select *
from information_schema.columns
where table_name like 'STD%'
- 然后将每行的userTag更新为"正在通话"
醇>
在userTag
表中将名为on call
的列的值更新为STD*
。您可以生成如下动态脚本:
use databasename --replace this with your db name
select 'UPDATE ' + table_schema + '.' + table_name
+ ' SET ' + COLUMN_NAME + ' = ''on call'';'
from information_schema.columns
where table_name like 'STD%'
and column_name = 'usertag';