如何更新名称与SQL

时间:2015-08-18 21:05:46

标签: mysql sql sql-server

我有一个包含多个表的数据库,其中很少有表名,如STD *。所有表STD *都有名为userTag的列。 所以

  1. 首先我想列出名称与STD *

  2. 相匹配的数据库的所有表格
  3. 然后将每行的userTag更新为"通话"

  4. 我可以使用第1项 Get all table names of a particular database by SQL query? 但我如何将其结果与第2项结合起来呢?

2 个答案:

答案 0 :(得分:0)

您可以在TABLES上查询表information_schema以匹配名称,但您无法在单个查询中使用它们。您可以编写存储过程来执行此操作: SQL query dynamic table name in FOR

答案 1 :(得分:0)

  
      
  1. 首先我想列出名称匹配的那个数据库的所有表   STD *
  2.   

您可以使用以下查询找到所有表名。

use databasename --replace this with your db name
select *
from information_schema.columns
where table_name like 'STD%'
  
      
  1. 然后将每行的userTag更新为"正在通话"
  2.   

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';