`
yjlogo
  • 浏览: 46483 次
  • 来自: ...
社区版块
存档分类
最新评论

转:查询整个数据库中某个特定值所在的表和字段的方法

阅读更多

 有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。 前提是要将这个存储过程放在所查询的数据库。

前提是要将这个存储过程放在所查询的数据库。

CREATE PROCEDURE [dbo].[SP_FindValueInDB]
(
    @value VARCHAR(1024)
)        
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @sql VARCHAR(1024) 
DECLARE @table VARCHAR(64) 
DECLARE @column VARCHAR(64) 

CREATE TABLE #t ( 
    tablename VARCHAR(64), 
    columnname VARCHAR(64) 
) 

DECLARE TABLES CURSOR 
FOR 

    SELECT o.name, c.name 
    FROM syscolumns c 
    INNER JOIN sysobjects o ON c.id = o.id 
    WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239) 
    ORDER BY o.name, c.name 

OPEN TABLES 

FETCH NEXT FROM TABLES 
INTO @table, @column 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] ' 
    SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') ' 
    SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', ''' 
    SET @sql = @sql + @column + ''')' 

    EXEC(@sql) 

    FETCH NEXT FROM TABLES 
    INTO @table, @column 
END 

CLOSE TABLES 
DEALLOCATE TABLES 

SELECT * 
FROM #t 

DROP TABLE #t 


End

返回三条记录,说明这个值存在于三个表中,分别为_dts_menudef, g_dts_menudef和g_recipe中,字段名分别为name1, name1, name。

非常好用。

来源:Michael Xu博客

分享到:
评论

相关推荐

    mysql 查询某个特定值在整个数据库中所在的表和字段 (已知数据库和字段值,查询表明和字段名)

    DROP TABLE if EXISTS temp; CREATE TABLE temp(tablename VARCHAR(255),LieName VARCHAR(255)); delimiter $$ DROP procedure IF EXISTS getDataByDbName $$ CREATE procedure getDataByDbName(in dbName VARCHAR...

    EXCEL函数公式学习大全.pdf

    * DPRODUCT:乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值 * DSTDEV:根据数据库中选定项的示例估算标准偏差 * DSTDEVP:根据数据库中选定项的样本总体计算标准偏差 * DSUM:对数据库中满足...

    arcgis工具

    除个人地理数据库要素类和表之外,查询表达式中的字符串是区分字母大小写的。如果搜索不需要区分大小写,可以使用SQL函数将所有的值都转换成大写或者小写。对于基于文件的数据源,例如shape文件或coverages,既可以...

    oracle数据库经典题目

    19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。 20.序列是一种可被多个用户使用的用于产生一系列唯一数字的数据库对象。尤其适合多用户环境中,可以...

    学生成绩管理系统——SQL数据库技术.doc

    然后就是得有个课程表 来存放哪个教师教哪门课程信息,所以此表中至少得有课程号,课程名称和教师的惟一 标识(教师编号),再有一个表来存放教师的信息的,其中的字段必须有教师编号,教 师姓名和所在的部门,当然...

    Oracle9i的init.ora参数中文说明

    默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者中的较小值 shared_server_sessions: 说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。 值范围: 0 到 SESSIONS ...

    SQL语法大全

    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加...

    Excel VBA实用技巧大全 附书源码

    03011引用工作表名称中包含特定字符串的工作表 03012获取工作表名称 03013获取全部工作表名称 03014判断某个表是否为工作表 03015获取工作表的显示状态 03016获取工作表的保护状态 03017判断工作表是否处于筛选模式 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。  SQL语言主要包含5个部分  数据定义...

    VFP 6.0 教程2

     表中的每一个字段由于其数据代表的意义的不同,因而都有特定的数据类型,例如:编号、姓名、出生年月三个字段的类型是各不相同的,在Visual FoxPro中,分别是用数值型(或整型)、字符型、日期型来表示的。...

    oracle实验报告

    (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名表相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 (4)SELECT语句中的WHERE条件可以包含PL/SQL块中定义的变量及表达式,但变量名...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例143 获取系统中的特定日期和时间 171 实例144 比较时间的大小 172 实例145 计算考试时间 173 实例146 倒计时 173 实例147 网页闹钟 174 实例148 计算程序运行时间 176 第3章 Web页面交互 178 3.1 获取表单元素的...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例143 获取系统中的特定日期和时间 171 实例144 比较时间的大小 172 实例145 计算考试时间 173 实例146 倒计时 173 实例147 网页闹钟 174 实例148 计算程序运行时间 176 第3章 Web页面交互 178 3.1 获取表单元素的...

    大数据中数据的质量问题探析.pdf

    3 一致性 数据一致性是指在数据库中, 不同表中存储和使用 的同一数据应当是等价的, 表示数据有相等的值和相同 的含义. 表1 学生信息表 学号 姓名 性别 出生日期 所在专业 2 2 0 2 1 3 张三 男 1 9 9 9...

    VFP数据库系统Visual-FoxPro常用的表单控件.pdf

    用户在为控件设置Caption属性时,可以将其 中的某个字符作为热键,方法是在该字符前插入 一个反斜杠(\)和一个小于号(<)。 AutoSize属性 该属性用于确定是否根据标题的长度来调整 标签的大小。 Alignment属性 该...

    CISCO路由之排除路由故障

    如果源所在子网与本地接口不同,RIP则忽略更新并且不在路由选择表中安装从这个源来的路由。  当一方是有编号而另一方是无编号时,必须关闭这个检查。  router rip  no validate-update-source  6.翻动...

    cmd操作命令和linux命令大全收集

    fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命令 at id号 开启已注册的某个计划任务 at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止 at ...

    微软活动目录管理管理简明手册

    b+ v+ T d/ R在活动目录中每个对象都有一个标识名,标识名确定了对象所在的域和可以找到对象的完整路径。比如,典型的标识名包括: ) v( ^# h2 Q% P ) k( @' h3 e4 k* G+ s" i7 `CN=TOM,OU=Manager,DC=Tech,DC=...

    Visual C++ 2005入门经典--源代码及课后练习答案

    2.3.9 具有特定值集的变量 51 2.3.10 指定枚举常量的类型 52 2.4 基本的输入/输出操作 53 2.4.1 从键盘输入 53 2.4.2 到命令行的输出 53 2.4.3 格式化输出 54 2.4.4 转义序列 55 2.5 C++中的计算 57...

Global site tag (gtag.js) - Google Analytics