SQL - 通过某个字段名称找到数据库中对应的表

本文介绍了一种通过字段名称查找其在数据库中对应表的方法,利用SQL语句快速定位字段所在表,帮助开发者在报表或导出Excel时轻松找到所需数据源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  工作中,我们经常会碰到会为一个已有的系统增加一些东西,如在报表中增加一些字段,或者在导出Excel文件时增加一些Column. 这时侯,我们不知道我们需要的数据在数据库中的哪个表中。至少,我们知道这个字段的名称吧!那我们就通过字段名称来找到数据库中对应的表。下面给出代码示例:

USE AdventureWorks
GO
select DISTINCT object_name(id)
from syscolumns
where name like '%EmployeeID%' order by 1
GO

  我需要找到EmployeeID是从哪个表里面来的,通过运行上面一条语句,可以找到所有使用了EmployeeID的表,视图,存储过程,函数等等。通过名称排除视图,存储过程,函数等等,剩下的都是表了。仔细分析一下,不难找到EmployeeID的主表。

      object_name(id):返回指定id的对象名称;

  syscolumns: 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中;

  name : 是syscolumns 中的列,存储列名或过程参数的名称。

既然syscolumns是表示数据库系统中的行集,那sysobjects 就表示系统中所有的对象集,如表,视图等。下面的数据库语句可以查询数据库中是否含有指定表。

select * from sysobjects
where object_name(id) in (
'OE_ORDER_LINES_ALL',
'OE_ORDER_HEADERS_ALL',
'OE_TRANSACTION_TYPES_TL',
'FNDLOOKUPVALUES',
'HZ_CUST_SITE_USES_ALL',
'HZ_CUST_ACCT_SITES_ALL'

哈哈!happy programming!!!

转载于:https://www.cnblogs.com/Dannier/archive/2011/01/19/1939115.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值