SQLServer全库搜索(在所有表中查找内容)

SQL Server全库搜索(在所有表中查找内容)
SQL Server版本:SQL Server2008以上
某个内容到底存储在数据库的哪个地方?无从下手时,可以使用全库查找。

上代码
declare @Str nvarchar(max), @tableName varchar(50), @colName varchar(50), @rowCount int

select a.name tableName, b.name Colname, 0 as IsFound into #t1
from sysobjects a join syscolumns b on a.id=b.id join systypes c on b.xtype=c.xtype
where a.[type]=’U’ and c.name in (‘varchar’, ‘nvarchar’, ‘char’, ‘nchar’) –这里是设置字段的类型,以缩小范围

declare _c1 cursor for select Colname, tableName from #t1
open _c1
fetch next from _c1 into @colName, @tableName
while @@FETCH_STATUS=0 begin

–输出查找结果print @Str
select @Str=’select @rowCount=count(1) from [‘+@tableName+’] where [‘+@colName+’] like ”%附加信息1%”’ –这里是要查找的内容
exec sp_executesql @Str, N’@rowCount int output’, @rowCount output
if @rowCount>0 update #t1 set IsFound=1 where ColName=@colName and tableName=@tableName
fetch next from _c1 into @colName, @tableName
end
close _c1
deallocate _c1
select * from #t1 where IsFound=1
drop table #t1

原文发布时间:2021/8/6 14:39:06

暂无评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

本站提供金蝶、钉钉等开发实施相关技术文章的发布和转载。如有侵权,联系立删(info@zjgkd.cn) 。
Powered by WordPress · 苏ICP备13058196号-11