1. --搜索所有表列数据
    2. DECLARE @string VARCHAR(100)='指定关键字'
    3. DECLARE @sql NVARCHAR(MAX)
    4. SET @sql=N'DECLARE @sql NVARCHAR(MAX),@ColNames NVARCHAR(MAX),@ColValues NVARCHAR(MAX);SET @ColNames=NULL;SET @ColValues=NULL;
    5. SELECT @ColNames=ISNULL(@ColNames+'','','''')+QUOTENAME(c.[Name])
    6. ,@ColValues=ISNULL(@ColValues, ''''''''+OBJECT_NAME(c.object_id)+''''''''+'' AS [TableName]'')+'',''+ ''RTRIM(CONVERT(NVARCHAR(max),''+QUOTENAME(c.[Name])+'')) AS ''+QUOTENAME(c.[Name])
    7. FROM sys.[columns] AS c where c.object_id=object_id(N''?'');
    8. set @sql= ''SELECT * FROM (SELECT ''+ @ColValues+'' FROM ''+''?''+'' ) as t UNPIVOT(ColumnValue FOR ColumName IN (''+@ColNames+'')) u WHERE CHARINDEX('''''+@string+N''''',ColumnValue)>0'';
    9. print @sql;
    10. EXEC(@sql)'
    11. PRINT @sql
    12. EXEC sp_MsforeachTable @command1=@sql
    --建议使用第二种方法进行查询
    declare @str varchar(100)
    set @str='信息主管' --要搜索的字符串
    declare @s varchar(8000)
    declare tb cursor local for
    select 'if exists(select 1 from ['+b.name+'] where ['+a.name+'] like  ''%'+@str+'%'')
    print '' ['+b.name+'].['+a.name+']'''
    from syscolumns a join sysobjects b on a.id=b.id
    where b.xtype='U' and a.status>=0
    and a.xusertype in(175,239,231,167)
    open tb
    fetch next from tb into @s
    while @@fetch_status=0
    begin
    exec(@s)
    fetch next from tb into @s
    end
    close tb
    deallocate tb