Sql 查询以获取Schema/DB中具有特定列值的所有表
是否存在显示具有特定列值的所有表的查询 我知道如何获取所有具有特定列的表,但我想扩展它以查找特定值,然后更新相应的结果以更改该值Sql 查询以获取Schema/DB中具有特定列值的所有表,sql,db2-luw,Sql,Db2 Luw,是否存在显示具有特定列值的所有表的查询 我知道如何获取所有具有特定列的表,但我想扩展它以查找特定值,然后更新相应的结果以更改该值 select c.tabschema as schema_name, c.tabname as table_name from syscat.columns c inner join syscat.tables t on t.tabschema = c.tabschema and t.tabname = c.tabname where c.c
select c.tabschema as schema_name,
c.tabname as table_name
from syscat.columns c
inner join syscat.tables t on
t.tabschema = c.tabschema and t.tabname = c.tabname
where c.colname = 'START_DATE' and c.tabschema='sample'
and t.type = 'T'
*<AND 'START_DATE' ='2017-05-17' >*--NOT SURE HOW WE DO THIS PART??
order by schema_name,
table_name;
选择c.tabschema作为schema\u名称,
c、 tabname作为表名
来自syscat.c列
内部联接syscat.t打开
t、 tabschema=c.tabschema和t.tabname=c.tabname
其中c.colname='START_DATE'和c.tabschema='sample'
而t.type='t'
**--不知道我们怎么做这个部分??
按架构名称排序,
表2:名称;
然后我想对生成的表进行更新,以更新列“START_DATE”值,如下所示
UPDATE <ALL RESULTED_TABLES FROM ABOVE QUERY> SET START_DATE = '2017-05-09' WHERE Tables = <ALL RESULTED_TABLES>
更新集开始日期='2017-05-09',其中表格=
您需要编写一个使用动态SQL的应用程序才能实现这一点。Db2有许多不同的接口,允许您执行此操作,包括嵌入式SQL、CLI、ODBC、Python、Perl等
您需要编写一个使用动态SQL的应用程序才能实现这一点。Db2有许多不同的接口,允许您执行此操作,包括嵌入式SQL、CLI、ODBC、Python、Perl等
您可以编写存储过程或复合SQL。 使用SQL收集具有“开始日期”列的所有表,并循环此列表。 在循环中,您可以执行如下操作
EXECUTE IMMEDIATE 'UPDATE ' || resolved_tablename || ' SET START_DATE="<my_new_startdate>" WHERE START_DATE="2017-05-17"'
立即执行“更新”| |已解决的| tablename | |“设置开始日期=”“,其中开始日期=“2017-05-17””
您可以编写存储过程或复合SQL。
使用SQL收集具有“开始日期”列的所有表,并循环此列表。
在循环中,您可以执行如下操作
EXECUTE IMMEDIATE 'UPDATE ' || resolved_tablename || ' SET START_DATE="<my_new_startdate>" WHERE START_DATE="2017-05-17"'
立即执行“更新”| |已解决的| tablename | |“设置开始日期=”“,其中开始日期=“2017-05-17””
参见DB2手册参见DB2手册