首页 > 数据库相关 > SQLServer查询所有表所有字段包含xx的信息

SQLServer查询所有表所有字段包含xx的信息

2009年2月28日 admin 发表评论 阅读评论

从系统表自动生成sql语句来运行得到结果

SELECT a.name AS columnname,object_name(a.id)AS tablename INTO t FROM syscolumns a,

sysobjects b,

systypes c

WHERE a.id=b.id  

AND a.xtype=c.xtype

AND b.xtype=’u’

AND c.name IN(‘varchar’,'nvarchar’,'char’,'nchar’,'text’,'ntext’)

AND object_name(a.id)<>’t’

go

CREATE FUNCTION udf_genSQL(@tableName varchar(1000),@keyword varchar(1000))

returns varchar(8000)

AS

begin

    declare @sql varchar(8000)

    SET @sql=’select * from ‘+@tableName +’ where 1=1 ‘

    SELECT @sql=@sql+’ or ‘+

       columnname +’ like ”%’+@keyword+’%”’ FROM t

    WHERE tablename=@tablename

    RETURN @sql

end

go

SELECT dbo.udf_genSQL(tableName,’a') FROM t GROUP BY tablename

DROP TABLE t

DROP FUNCTION dbo.udf_genSQL

分类: 数据库相关 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.