首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么按某个关键字对一张表进行全文搜索

2012-12-16 
如何按某个关键字对一张表进行全文搜索如何按某个关键字对一张表进行全文搜索要求表的列数不固定[最优解释

如何按某个关键字对一张表进行全文搜索
如何按某个关键字对一张表进行全文搜索
要求表的列数不固定
[最优解释]



--很简单的,SQL的系统表里面保存了其它用户表的结构字段等
--可以从系统表里面获取某数据表的所有字段。然后循环生成 where 段的语句

DECLARE @TNAME VARCHAR(20),@KEY VARCHAR(10),@I INT,@COUNT INT  ,@WHERE VARCHAR(5000),@FN VARCHAR(20)

SET @TNAME ='SC_SCGCD_M'  --要查询的数据表名
SET @KEY ='1'  --要查询的关键字

select ID=IDENTITY(INT,1,1), NAME INTO #TEMP01  from syscolumns where id=OBJECT_ID(@TNAME)

SELECT @COUNT=COUNT(0) FROM #TEMP01 

SET @I=1
SET @WHERE =' (1=2) '

WHILE  @I <= @COUNT
BEGIN
  SELECT @FN =[NAME] FROM #TEMP01 WHERE ID=@I
  
  SET @WHERE = @WHERE +' OR ('+ @FN + '  LIKE ''%'+@KEY+'%'')'  
  
  SET @I=@I + 1

END

EXEC('SELECT * FROM '+@TNAME+ ' WHERE '+@WHERE)

DROP TABLE #TEMP01


[其他解释]
不固定就拼接字符串再动态执行。
[其他解释]
动态实现?  楼主能否发给个实际例子
[其他解释]
厉害 好用 好用
[其他解释]
用CONTAINS(*,'...')检索所有列

热点排行
Bad Request.