SQL2005全文索引,如何才能查IMAGE类型中的文字? SQL2005全文索引,如何才能查IMAGE类型中的文字?网上说:把文以流的形式存进IMAGE类型的字段中,仍然可以用全文索引查出来,可是我试了一天都没成功希望高人们给一个例子和指点迷津,特别是关键的地方 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去大力博客看看MS SQL Server2000全文索引image列全攻略 1、启动 Microsoft Search 服务 开始菜单--> SQL程序组--> 服务管理器--> 下拉筐--> Microsoft Search 服务--> 启动它 2、 ..\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目录里建一个非空noise.chs文件 非空noise.chs文件,也有人说是空的noise.chs文件,但我每次都往里写几个没用的字母。 3、建立环境 打开查询分析器--> 执行下列脚本: -------------------------------------------- create database test ---创建test数据库 use test ---选择test数据库 create table dali (ID int not null primary key,MyImage image,FileType varchar(255),FileNmae varchar(255)) ---创建dali表 --dali表中 Id,MyImage,FileType 三列是必须的,因为要对image列索引的话,必须要有一个主键列,一个image列,一个存放文件类型的列 --我们知道在windows系统中文件类型是靠扩展名来区分的所以FileType列也就是用来放 文件的扩展名 -------------------------------------------- sp_fulltext_database 'enable ' --为全文索引启用数据库 sp_fulltext_catalog 'My_FullDir ', 'create ' ---创建一个叫My_FullDif的全文目录 declare @Key sysname ; select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id( 'a ') and a.name= 'a ' and a.id=b.id and b.constid=c.id and c.name like 'PK% ' exec sp_fulltext_table 'dali ', 'create ', 'My_FullDir ',@Key ----这两句是为全文索引,对表进行标记 sp_fulltext_column 'dali ', 'MyImage ', 'add ',0x0804, 'FileType ' ---这句是指定MyImage列为全文索引列,FileType是类型列 ------------------------------------------------ 4、在c盘下放一个扩展名为doc的word文件,一个扩展名为xls的excel文件,一个扩展名为htm的网页文件,个扩展名为bmp的图片 共4个,大家可根据实际情况放入! 5、插入数据 建立下面这个存储过程 -------------------------------------------------- CREATE PROCEDURE sp_textcopy @srvname varchar (30), @login varchar (30), @password varchar (30), @dbname varchar (30), @tbname varchar (30), @colname varchar (30), @filename varchar (30), @whereclause varchar (40), @direction char(1) AS /* 这是使用textcopy工具将文件插入到数据库中,如果有前台工具可以用前台开发工具将文件插入,这里为了演示 */ DECLARE @exec_str varchar (255) SELECT @exec_str= 'textcopy /S '+@srvname+ ' /U '+@login+ ' /P '+@password+ ' /D '+@dbname+ ' /T '+@tbname+ ' /C '+@colname+ ' /W " '+@whereclause+ ' " /F " '+@filename+ ' " / '+@direction EXEC master..xp_cmdshell @exec_str ---------------------------------------------------- insert dali values(1,0x, 'doc ', '大力的doc ') ---其中第二列是 0x 它是一个16进制数对应image列,是必须的,不要写null,第三列是文件 类型,既扩展名 sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\大力的doc.doc ', 'where ID=1 ', 'I ' -------依次参数是:实例名,用户名,密码,数据库名,表名,image列名,路径及文件名,条件(你必须保证它只选择一行),I --------------------------------------------------------------------------------------------------------------------- insert dali values(2,0x, 'bmp ', '图片 ') sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\图片.bmp ', 'where ID=2 ', 'I ' --注意条件是 ID=2 insert dali values(3,0x, 'xls ', 'Excel文件 ') sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\Excel文件.xls ', 'where ID=3 ', 'I ' --注意条件是 ID=3 insert dali values(4,0x, 'htm ', '网页 ') sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\网页.htm ', 'where ID=4 ', 'I ' --注意条件是 ID=4 ----------上面的语句,要保证类型一样,路径正确,条件唯一正确应该就可以了 6、填充全文索引 sp_fulltext_table 'dali ', 'start_full ' ---第一个参数是表名,第二个参数是启动表的全文索引的完全填充 7、可以开始你的实验了 select * from dali where contains(MyImage, 'J老师 ') select * from dali where contains(MyImage, '海老师 ') ------END---------- --调试环境:SQLServer2K、Windows2Kas SQL去掉前三位第一层级数据 SQL Server 2008究竟有多少G?我系统是XP 求一sql语句的写法? PDH向远程sql server 数据库插入数据 错误ERROR : Call to SQLAllocConnect failed with %1 想写一个insert触发器。 日期转换 哪里可以下载到现成的数据库啊 一个关于考试系统随机出题的实现方法 在线等:这个SQL语句该如何写? 远程连接?????????? 求软件随电脑启动而启动的代码 各位大哥来看看这是什么问题。。
MS SQL Server2000全文索引image列全攻略 1、启动 Microsoft Search 服务
开始菜单--> SQL程序组--> 服务管理器--> 下拉筐--> Microsoft Search 服务--> 启动它 2、
..\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目录里建一个非空noise.chs文件
非空noise.chs文件,也有人说是空的noise.chs文件,但我每次都往里写几个没用的字母。 3、建立环境
打开查询分析器--> 执行下列脚本:
--------------------------------------------
create database test ---创建test数据库
use test ---选择test数据库
create table dali (ID int not null primary key,MyImage image,FileType varchar(255),FileNmae varchar(255)) ---创建dali表
--dali表中 Id,MyImage,FileType 三列是必须的,因为要对image列索引的话,必须要有一个主键列,一个image列,一个存放文件类型的列
--我们知道在windows系统中文件类型是靠扩展名来区分的所以FileType列也就是用来放 文件的扩展名
-------------------------------------------- sp_fulltext_database 'enable ' --为全文索引启用数据库
sp_fulltext_catalog 'My_FullDir ', 'create ' ---创建一个叫My_FullDif的全文目录 declare @Key sysname ; select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id( 'a ') and a.name= 'a ' and a.id=b.id and b.constid=c.id and c.name like 'PK% '
exec sp_fulltext_table 'dali ', 'create ', 'My_FullDir ',@Key ----这两句是为全文索引,对表进行标记 sp_fulltext_column 'dali ', 'MyImage ', 'add ',0x0804, 'FileType ' ---这句是指定MyImage列为全文索引列,FileType是类型列
------------------------------------------------
4、在c盘下放一个扩展名为doc的word文件,一个扩展名为xls的excel文件,一个扩展名为htm的网页文件,个扩展名为bmp的图片
共4个,大家可根据实际情况放入! 5、插入数据
建立下面这个存储过程
--------------------------------------------------
CREATE PROCEDURE sp_textcopy
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1)
AS
/* 这是使用textcopy工具将文件插入到数据库中,如果有前台工具可以用前台开发工具将文件插入,这里为了演示 */
DECLARE @exec_str varchar (255)
SELECT @exec_str= 'textcopy /S '+@srvname+ ' /U '+@login+ ' /P '+@password+ ' /D '+@dbname+ ' /T '+@tbname+ ' /C '+@colname+ ' /W " '+@whereclause+ ' " /F " '+@filename+ ' " / '+@direction
EXEC master..xp_cmdshell @exec_str
---------------------------------------------------- insert dali values(1,0x, 'doc ', '大力的doc ') ---其中第二列是 0x 它是一个16进制数对应image列,是必须的,不要写null,第三列是文件 类型,既扩展名 sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\大力的doc.doc ', 'where ID=1 ', 'I '
-------依次参数是:实例名,用户名,密码,数据库名,表名,image列名,路径及文件名,条件(你必须保证它只选择一行),I
---------------------------------------------------------------------------------------------------------------------
insert dali values(2,0x, 'bmp ', '图片 ')
sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\图片.bmp ', 'where ID=2 ', 'I ' --注意条件是 ID=2 insert dali values(3,0x, 'xls ', 'Excel文件 ')
sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\Excel文件.xls ', 'where ID=3 ', 'I ' --注意条件是 ID=3 insert dali values(4,0x, 'htm ', '网页 ')
sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', 'test ', 'dali ', 'MyImage ', 'c:\网页.htm ', 'where ID=4 ', 'I ' --注意条件是 ID=4 ----------上面的语句,要保证类型一样,路径正确,条件唯一正确应该就可以了 6、填充全文索引 sp_fulltext_table 'dali ', 'start_full ' ---第一个参数是表名,第二个参数是启动表的全文索引的完全填充 7、可以开始你的实验了 select * from dali where contains(MyImage, 'J老师 ') select * from dali where contains(MyImage, '海老师 ') ------END----------
--调试环境:SQLServer2K、Windows2Kas