预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
HYPERLINK"http://www.cnblogs.com/michaelxu/archive/2009/11/04/1596106.html"\t"_blank"查询整个数据库中某个特定值所在的表和字段的方法有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。前提是要将这个存储过程放在所查询的数据库。CodeCREATEPROCEDURE[dbo].[SP_FindValueInDB](@valueVARCHAR(1024))ASBEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements.SETNOCOUNTON;DECLARE@sqlVARCHAR(1024)DECLARE@tableVARCHAR(64)DECLARE@columnVARCHAR(64)CREATETABLE#t(tablenameVARCHAR(64),columnnameVARCHAR(64))DECLARETABLESCURSORFORSELECTo.name,c.nameFROMsyscolumnscINNERJOINsysobjectsoONc.id=o.idWHEREo.type='U'ANDc.xtypeIN(167,175,231,239)ORDERBYo.name,c.nameOPENTABLESFETCHNEXTFROMTABLESINTO@table,@columnWHILE@@FETCH_STATUS=0BEGINSET@sql='IFEXISTS(SELECTNULLFROM['+@table+']'SET@sql=@sql+'WHERERTRIM(LTRIM(['+@column+']))LIKE''%'+@value+'%'')'SET@sql=@sql+'INSERTINTO#tVALUES('''+@table+''','''SET@sql=@sql+@column+''')'EXEC(@sql)FETCHNEXTFROMTABLESINTO@table,@columnENDCLOSETABLESDEALLOCATETABLESSELECT*FROM#tDROPTABLE#tEnd例如,要查询值'BBQCHICSW',结果如下:返回三条记录,说明这个值存在于三个表中,分别为_dts_menudef,g_dts_menudef和g_recipe中,字段名分别为name1,name1,name。