Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3029745
  • 博文数量: 181
  • 博客积分: 9990
  • 博客等级: 中将
  • 技术积分: 1865
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-23 09:43
文章分类

全部博文(181)

文章存档

2011年(40)

2010年(17)

2009年(87)

2008年(37)

我的朋友

分类: 网络与安全

2009-02-27 13:27:41

从系统表自动生成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

阅读(621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~