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


      工作中,我们经常会碰到会为一个已有的系统增加一些东西,如在报表中增加一些字段,或者在导出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!!!

  • 相关阅读:
    redis基本命令1
    MySQL笔记01(黑马)
    尚硅谷Java——宋红康笔记【day25-day29】
    尚硅谷Java——宋红康笔记【day19-day24】
    Java网络编程实践
    框架高频面试题
    多线程面试题
    尚硅谷Java——宋红康笔记【day11-day18】
    尚硅谷Java——宋红康笔记【day6-day10】
    尚硅谷Java——宋红康笔记【day1-day5】
  • 原文地址:https://www.cnblogs.com/Dannier/p/1939115.html
Copyright © 2020-2023  润新知