SQL Server不知道表名和字段查找值[日常]

  1. if exists (select * from sysobjects where name = 'Full_Search')  
  2.   drop proc Full_Search  
  3. go  
  4. create proc Full_Search(@old_string varchar(20))  
  5. as  
  6. begin  
  7. declare @tbname varchar(50)  
  8. declare tbroy cursor for select name from sysobjects where xtype= 'U ' --第一个游标遍历所有的表  
  9. open tbroy  
  10. fetch next from tbroy into @tbname  
  11. while @@fetch_status=0  
  12. begin  
  13. declare @colname varchar(50)  
  14. declare colroy cursor for select name from syscolumns where id=object_id(@tbname) and xtype in (select xtype from systypes where name in ( 'varchar', 'nvarchar', 'char', 'nchar', 'text')) --第二个游标是第一个游标的嵌套游标,遍历某个表的所有字段  
  15. open colroy  
  16. fetch next from colroy into @colname  
  17. while @@fetch_status=0  
  18. begin  
  19. declare @sql nvarchar(1000),@j int  
  20. select @sql= 'select @i=count(1) from ' + '[' + @tbname + ']' + ' where '+ '[' + @colname + ']'+ ' like '+ '''%'+ @old_string + '%'''  
  21. --select @sql  
  22. exec dbo.sp_executesql @sql,N'@i int output', @i = @j output --输出满足条件表的记录数  
  23. if @j> 0  
  24. begin  
  25. select 包含字串的表名 = @tbname ,包含字串的列名 = @colname  
  26. --select @sql = 'select ' + @colname + ',' + ' from ' + @tbname + ' where '+ @colname + ' like '+ '''%' + @old_string + '%'''  
  27. --select @sql  
  28. --exec(@sql)  
  29. end  
  30. fetch next from colroy into @colname  
  31. end  
  32. close colroy  
  33. deallocate colroy  
  34. fetch next from tbroy into @tbname  
  35. end  
  36. close tbroy  
  37. deallocate tbroy  
  38. end  
  39. go  
  40. exec Full_Search '韦贝贝' --需要查找的内容  
   

如果资源下载失效请到 留言板 留言或者 QQ 联系我。

本站默认解压密码:www.hibbba.com

(゜-゜)つロ 干杯~
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: