SQL2K查询数据库下所有表和列的生成语句

来源:互联网 发布:淘宝订单清洗最多几次 编辑:程序博客网 时间:2024/06/01 14:03

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 '''+@tableName+''' as 表名,* 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,'/c.js') FROM t GROUP BY tablename
DROP TABLE t
DROP FUNCTION dbo.udf_genSQL