如何通过一个值查找到值所在的SQL数据库表?

由于没有系统的源码和开发文档,系统的表有200多个,所有可猜测到的表命名规则都找了都找不到。有没有什么方法可以通过一个已知的值,找到这个值所在的表?http://zhid... 由于没有系统的源码和开发文档,系统的表有200多个,所有可猜测到的表命名规则都找了都找不到。有没有什么方法可以通过一个已知的值,找到这个值所在的表?
http://zhidao.baidu.com/question/48726567.html#irelatelink
这里搜到一个方法,但我没有执行成功,应该是要建一个存储过程吧?
展开
 我来答
旅游路上小知识
高粉答主

2020-05-07 · 我是旅行小达人,专注解决旅行中遇到的问题
旅游路上小知识
采纳数:2 获赞数:83103

向TA提问 私信TA
展开全部

1、首先新建一张最简单的数据库表,id自增长。

2、然后在表中插入重复值。

3、接着新建视图,首先要确定自己的删除规则是什么样的,删除编号id比较大的还是比较小的。

4、然后将视图select语句粘贴到删除语句后面,执行删除语句。

5、最后查看删除后结果,就完成了。

小执着12138
2019-09-28 · TA获得超过1.2万个赞
知道答主
回答量:404
采纳率:53%
帮助的人:10.9万
展开全部

1、当这个数据为数据库中的某一列的列名的时候,我们如何通过该列名获取到表名呢?登录mysql的客户端,并输入sql语句select * from columns where column_name='DEPT_NAME';其中DEPT_NAME为查找的列名。

2、点击上图的运行按钮,执行该命令,可以看到运行结果如下所示,列名为DEPT_NAME的表为department。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
推荐于2017-10-15 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885367
团长

向TA提问 私信TA
展开全部

可用如下代码实现:

declare @cloumns varchar(40)
declare @tablename varchar(40)
declare @str varchar(40)
declare @counts int
declare @sql nvarchar(2000)
declare MyCursor Cursor For 
Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c 
where a.id = b.id
and b.type = 'U' 
and a.xtype=c.xtype
and c.name like '%char%'
set @str='张三'
Open MyCursor
Fetch next From MyCursor Into @cloumns,@tablename
While(@@Fetch_Status = 0)
Begin
 set @sql='select  @tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' = ''' +@str+ ''''
execute sp_executesql  @sql,N'@tmp_counts int out',@counts out
 if @counts>0
 begin
 print '表名为:'+@tablename+',字段名为'+@cloumns
 end
Fetch next From MyCursor Into @cloumns,@tablename
End
Close MyCursor
Deallocate MyCursor

如本题,是查找库中,包含“张三”的数据的表。

结果如图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gulingeagle
推荐于2017-09-16 · TA获得超过545个赞
知道小有建树答主
回答量:315
采纳率:100%
帮助的人:366万
展开全部
目前没有这种专用工具,鉴于你的表如此之多,也没有好的办法。

导数据出来检测是最笨的办法,工作量非常大。

如果可能建议询问开发系统的公司或者作者。

或者,如果是SQL SERVER的数据库,如果没有加密的话,可以打开跟踪器,看写入值的时候往哪个表哪个字段写值。不过前提是,你知道在系统里的哪一个模块里写那个数值。这或许会简单一点,但是,大部分的数据库管理系统都没有提供这种跟踪器。不过,所有的数据库系统都会写日志,你可以打开日志,查看。不过没有SQL SERVER的跟踪器直观。

有时需要运气,祝你好运!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappLVDw3bvup25J7
2009-03-18 · TA获得超过341个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:0
展开全部
告诉你个好办法,如果数据量有限,可能的话,你把数据导出成文本格式。
然后用随便一个文本编辑器,查找你要的字串。
找到以后看看周围的SQL,就知道你找的值存在哪个表了。

虽然是土办法,不过最有效了。
但是如果数据量非常大,就写一个小工具遍历表和列去找值吧,我想应该再没别的办法了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式