sql遍历所有表中某项值为已知数的查询方法

下面将为您介绍sql遍历所有表中某项值为已知数的查询语句写法,供您参考,如果您对sql遍历方面感兴趣的话,不妨一看,希望对您有所帮助。

成都创新互联公司专注于汤原企业网站建设,响应式网站建设,成都做商城网站。汤原网站建设公司,为汤原等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

 
 
 
  1. CREATE proc Full_Search(@string varchar(50))   
  2. as   
  3. begin   
  4.  
  5. declare @tbname varchar(50)   
  6. declare tbroy cursor for select name from sysobjects   
  7. where xtype= 'u ' --***个游标遍历所有的表   
  8.  
  9. open tbroy   
  10. fetch next from tbroy into @tbname   
  11. while @@fetch_status=0   
  12. begin   
  13.  
  14. declare @colname varchar(50)   
  15. declare colroy cursor for select name from syscolumns   
  16. where id=object_id(@tbname) and xtype in (   
  17. select xtype from systypes   
  18. where name in ( 'varchar ', 'nvarchar ', 'char ', 'nchar ') --数据类型为字符型的字段   
  19. ) --第二个游标是***个游标的嵌套游标,遍历某个表的所有字段   
  20.  
  21. open colroy   
  22. fetch next from colroy into @colname   
  23. while @@fetch_status=0   
  24. begin   
  25.  
  26. declare @sql nvarchar(1000),@j int   
  27. select @sql= 'select @i=count(1) from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%'''   
  28. exec sp_executesql @sql,N'@i int output',@i=@j output --输出满足条件表的记录数   
  29. if @j> 0   
  30. BEGIN  
  31. select 包含字串的表名=@tbname  
  32. --exec( 'select distinct '+@colname+' from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%''')   
  33. END  
  34. fetch next from colroy into @colname   
  35. end   
  36.  
  37. close colroy   
  38. deallocate colroy   
  39.  
  40. fetch next from tbroy into @tbname   
  41. end   
  42. close tbroy   
  43. deallocate tbroy   
  44. end   
  45. go   
  46.  
  47. exec Full_Search '123'   
  48.  

以上就是sql遍历所有表中某项值为已知数的查询方法。

【编辑推荐】

SQL Server安全解析

sql server安全的两层模型

让sqlserver恢复到某个时间点

使用Easy Recovery实现sql server恢复

SQL Server系统表的作用

标题名称:sql遍历所有表中某项值为已知数的查询方法
标题链接:http://www.shufengxianlan.com/qtweb/news49/307699.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联