欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sql server 查询数据库所有表中包含该值的表

程序员文章站 2024-02-22 22:57:22
...

将 @string 替换成需要查询的值

DECLARE @SQL NVARCHAR(4000);
SET @SQL = N'DECLARE @str NVARCHAR(4000);
SELECT
@str = ISNULL(@str + N'' OR '' + c.name + N'' LIKE N''''%'
+ @string + ' %'''''',
c.name + N'' LIKE N''''%' + @string +'%'''''') FROM syscolumns AS c JOIN systypes AS t ON c.id=OBJECT_ID(''?'')
AND c.xtype=t.xtype
AND t.name IN(''varchar'',''char'',''nvarchar'',''nchar'');

SET @str = ''SELECT TOP 1 1 FROM ? WHERE ''+@str;
CREATE TABLE #tb(a int);
INSERT #tb(a) EXEC(@str);
IF EXISTS(SELECT * FROM #tb)
PRINT ''?''
';
EXEC sp_MsforeachTable @SQL;

执行

exec FindString '05973'

结果

[dbo].[table12]
[dbo].[table1]
[dbo].[table13]
[dbo].[LogInfo]
[dbo].[Person]

相关标签: 学习 sqlserver