Db2如何查询一个scheam下所有表名包含某个字段的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Db2如何查询一个scheam下所有表名包含某个字段的值相关的知识,希望对你有一定的参考价值。

参考技术A 1.查询数据库中的所有数据库名:
SELECT Name FROM Master..SysDatabases ORDER BY Name

2.查询某个数据库中所有的表名:
SELECT Name FROM SysObjects Where XType='U' ORDER BY Name

从给定数据库中选择所有表时,如何将 [dbo] 前缀附加到表名?

【中文标题】从给定数据库中选择所有表时,如何将 [dbo] 前缀附加到表名?【英文标题】:How to attach [dbo] prefix to table name when selecting all tables from a given database? 【发布时间】:2019-06-22 10:19:18 【问题描述】:

我正在使用 SSMS 或直接使用 C# 代码执行问题下方列出的查询。结果,我得到了一个表,其中包含该数据库中所有可用表的名称列表。

在大多数情况下,这些表名可以直接用于所有类型的“SELECT”查询。但是,如果当前数据库是 AdventureWorks2017,则所有表名都已损坏。如果我想执行任何“SELECT”查询,我必须手动添加所有不是 [dbo] 的前缀(例如,[HumanResources]、[Person] 等)。

另外,我的问题是:我应该使用什么样的查询来获得完整的前缀表名(如[AdventureWorks2017].[HumanResources].[Employee] or [Northwind].[dbo].[CustomerCustomerDemo])?

use 'someDBName' 
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'someDBName'

【问题讨论】:

有一个名为 ApexSQL 的 SSMS 插件,可以像这样格式化您的查询 请阅读架构。 ***.com/questions/529142/… @EzLo,谢谢你的参考! 【参考方案1】:
SELECT '[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']' AS SchemaAndTable
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = 'DbName'

FWIW,表名没有损坏,它们只是与 dbo 的通常(默认)模式不同

要同时获取数据库名称,您可以这样做:

SELECT '[' + TABLE_CATALOG + '].[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']' AS DbSchemaAndTable
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = 'DbName'

【讨论】:

以上是关于Db2如何查询一个scheam下所有表名包含某个字段的值的主要内容,如果未能解决你的问题,请参考以下文章

用oracle如何查询出一个表中的一个字段内容包含另一个表中的某个字段的值呢

SQL 查表名?

MySQL查询表与表字段的信息

如何查询一个ACCESS数据库中的表名和字段?

sql语句包含怎么写

db2如何实现用一张表的某个字段更新另一张表的相应字段。