永发信息网

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

答案:4  悬赏:50  手机版
解决时间 2021-04-04 07:04
如何通过一个值查找到值所在的SQL数据库表?
最佳答案
可用如下代码实现:

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如本题,是查找库中,包含“张三”的数据的表。

结果如图:

全部回答
告诉你个好办法,如果数据量有限,可能的话,你把数据导出成文本格式。
然后用随便一个文本编辑器,查找你要的字串。
找到以后看看周围的SQL,就知道你找的值存在哪个表了。
虽然是土办法,不过最有效了。
但是如果数据量非常大,就写一个小工具遍历表和列去找值吧,我想应该再没别的办法了
select * from sysobjects
select * from syscolumns
查询数据表所有列名称,tablename是你要找的表名
select * from syscolumns where id=object_id ('tablename')
根据字段名称查找表名称,找出字段名有fieldname的所有表
select a.name from sysobjects a,syscolumns b where a.id = b.id and b.name = 'fieldname'
目前没有这种专用工具,鉴于你的表如此之多,也没有好的办法。
导数据出来检测是最笨的办法,工作量非常大。
如果可能建议询问开发系统的公司或者作者。
或者,如果是SQL SERVER的数据库,如果没有加密的话,可以打开跟踪器,看写入值的时候往哪个表哪个字段写值。不过前提是,你知道在系统里的哪一个模块里写那个数值。这或许会简单一点,但是,大部分的数据库管理系统都没有提供这种跟踪器。不过,所有的数据库系统都会写日志,你可以打开日志,查看。不过没有SQL SERVER的跟踪器直观。
有时需要运气,祝你好运!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
描写强忍着泪水的句子,强忍泪水的句子
黄淮海平原地区,要治理的中、低产田主要分布
prt格式的图档如何转换成STL格式的图档
腰椎间盘突出吃药可以痊愈吗
奉献的名人名言大全,顶!关于奉献者的事迹或名
已知a<b,则a+c__b+c,a-c__b-c
loho和宝岛眼镜哪家好?
赢字怎么理解
作文题目相伴的开头结尾5个
每天开心祝福语,妹妹过生日,想让她好好学习
龟放在客厅养对夫妻之间关系好么
什么牌子的壁纸好,网上那么多壁纸的牌子,选
拾穗的少年阅读答案
叉车可以放4个高吗?集装箱
那等你回来再说什么意思?
推荐资讯
发小电子相册起什么名字
vivo手机屏幕有线条型红光是怎么回事
怎样宣传PMP的重要性
现在日本非法滞留两年主动自首回国,会罚款吗
(一x一2y)(x2一2xy+4y2)计算
唯品会拒收对快递员有什么影响吗
怎么说日语,翻译日文
请问,我家宽带是电信100M的,费用一年1600,
八十以内八的倍数有什么?
星巴克求职申请表格(勤工俭学)面试之后都会
我老公那玩意很小很小,每次都不了了之也不能
1:1000000的地图上,常州市的面积大约为43.7
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?