SQL Server 的字符串查找存储过程 p_search,还挺适合做数据库内容排查的,尤其是你想知道某个值到底藏在哪张表哪个字段的时候,用它真是省不少事。你只要传个参数进去,比如 @str = 'admin',它就能在所有用户表的nvarcharvarchar等字段里挨个找,把结果——表名、字段名一并甩给你,干脆又直接。

逻辑上,它会用系统表sys.tablessys.columns联合INFORMATION_SCHEMA.COLUMNS来找字段名,再拼一堆SELECT做动态 SQL 执行。嗯,执行效率不能和直接查某张表比,但胜在全库遍历,偶尔排查问题还挺有用。

实测下来,像在日志类或用户数据表中搜关键词“测试”之类的,都能迅速锁定结果——只要你数据库别太大。它默认只查chartext相关字段,想扩展类型的可以自己改下字段类型判断部分。

代码也不复杂,粘贴到 SSMS 里直接执行就能建好。如果你也经常碰到“这条数据到底在哪”的疑问,可以把这个过程放进常用工具库里备用。

相关内容还可以看看:SQL Server 利用内容搜索存储过程 这个讲得也挺细;另外像死锁查询动态建表这些也都挺实用。

如果你数据库字段多又杂,推荐你在加字段备注时也统一点,后续用这种工具查值定位更方便。