EXEC sp_MSforeachdb 'if "?" not in (''master'',''tempdb'',''model'',''msdb'',''distribution'')
BEGIN
DECLARE @search NVARCHAR(200),@sql NVARCHAR(MAX)
SET @search=''广东'' --自己修改
DECLARE @t TABLE (
rid INT IDENTITY(1,1) PRIMARY KEY,
tableName NVARCHAR(200),
columnName NVARCHAR(200),
printInfo AS tablename+''.''+columnName+'' ''
)
--SELECT @sql=''if exists(select 1 from [''+t.name+''] where convert(nvarchar(max),[''+c.name+''])=''''''+@search+'''''''' FROM sys.tables AS t
INSERT INTO @t(tableName,columnName)
SELECT t.name,c.name FROM sys.tables AS t
INNER JOIN sys.[columns] AS c ON t.[object_id]=c.[object_id]
INNER JOIN sys.types AS tp ON c.system_type_id=tp.system_type_id AND tp.name IN (''text'',''ntext'',''char'',''nchar'',''varchar'',''nvarchar'')
DECLARE @i INT,@imax INT
SELECT @i=1,@imax=MAX(rid) FROM @t
WHILE @i<=@imax
BEGIN
SELECT @sql=''if exists(select 1 from [''+tableName+''] where convert(nvarchar(max),[''+columnName+'']) like ''''%''+@search+''%'''') select ''''''+DB_NAME()+''.''+printInfo+'''''''' FROM @t WHERE rid=@i;
EXEC(@sql);
SET @i=@i+1;
END
END
'