SQL2005实现全文检索的步骤 停止数据库的用户连接
2010-01-03 11:05
337 查看
--停止数据库的用户连接create proc killspid (@dbname varchar(50))asdeclare @sql nvarchar(1000), @spid intdeclare getspid cursor for select spid from sysprocesseswhere dbid=db_id(@dbname)open getspidfetch next from getspid into @spidwhile @@fetch_status=0beginexec('kill '+@spid)fetch next from getspid into @spidendclose getspiddeallocate getspidgo--用法use masterexec killspid '数据库名'
SQL2005实现全文检索的步骤是什么?与SQL2000的全文检索实现有什么不同?[/code]
答案:
具本步骤为(括号内为每步所调用的存储过程名称):
(1)启动数据库的全文处理功能(sp_fulltext_datebase);
(2)建立全文目录(sp_fulltext_catalog);
(3)在全文目录中注册需要全文索引的表(sp_fulltext_table);
(4)指出表中需要全文检索的列名(sp_fulltext_column)
(5)为表创建全文索引(sp_fulltext_table);
(6)填充全文索引(sp_fulltext_catalog)。
例:
use pubs
go
exec sp_fulltext_database 'enable'
--为titles表建立全文索引数据元,其中create为建立,activate为激活,deactivate为关闭表全文索引的激活状态,使
它不再参加全文目录填充,drop为删除;create参数中,后面跟的是全文目录名称和索引列名。
--下面语句为pubs数据库中的titles表创建全文索引数据元,存储该数据元的全文目录为FT_pubs,所使用的唯一索引为
UPKCL_titleidind(title表中为title_id列的PRIMARY KEY约束所建立的唯中索引)
sp_fulltext_table titles,'create','FT_pubs','upkcl_titledind'
--激活它
sp_fulltext_table titles,'activate'
--指定参加全文索引的列
sp_fulltext_column 'titles','title','add'
sp_fulltext_column 'titles','notes','add'
下面是一个完整的例子:
--在执行该脚本程序之前启动sql server的全文搜索服务,即microsoft search服务
use pubs --打开数据库
go
--检查pubs是否支持全文索引,如果不支持全文索引,则使用sp_fulltext_datebase打开该功能
if (select databaseproperty ('pubs','IsFulltextEnables'))=0
execute sp_fulltext_database 'enable'
--建立全文目录FT_pubs
execute sp_fulltext_catalog 'FT_pubs','create'
--为titles表建立全文索引数据元
execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind'
--设置全文索引列名
execute sp_fulltext_column 'titles','title','add'
execute sp_fulltext_column 'titles','notes','add'
--建立全文索引
execute sp_fulltext_table 'FT_pubs','activate'
--填充全文索引目录
execute sp_fulltext_catalog 'FT_pubs','start_full'
GO
--检查全文目录填充情况
WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0
BEGIN
--如果全文目录正处于填充状态,则等待30秒后再检测一次
WAITFOR DELAY ‘0:0:30’
END
--全文目录填充完成后,使用全文目录检索
--查询title列或notes列中包含有database或computer字符串的图书名称
SELECT title
FROM title
where CONTAINTS(title,'database')
or contains(notes,'database')
or contains(title,'computer')
or contains(notes,'computer')
select * from Table1where Contants(*,'test')优化后性能提升 2倍+select[code]*
from
Table1
where
Contains
((Content,Title),
'test'
)[/code]
相关文章推荐
- SQL2005实现全文检索的步骤
- SQL2005实现全文检索的步骤是什么?
- DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户
- Druid实现数据库连接用户密码加密
- 使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
- MySQL通过增加用户实现远程连接数据库
- jdbc连接数据库 实现步骤
- SQL2005实现全文检索的步骤是什么?
- 全文检索技术Lucene入门和学习、与数据库数据结合的demo实现
- java 与数据库连接 实现用户的注册和登录
- ADO.NET 使用Connection对象连接数据库实现用户登录
- 通过Visual Studio 2005 中的数据源选择对话框实现数据库连接配置(用户使用)
- Druid实现数据库连接用户密码加密
- Druid实现数据库连接用户密码加密
- jsp连接数据库实现用户登录功能
- Oracle数据库案例整理-删除和停止Oracle数据库失败-数据库用户session连接到数据库导致无法删除此用户
- jdbc连接数据库的7大步骤(以通过jdbc连接实现数据的插入、更新为例)
- Druid实现数据库连接用户密码加密
- node.js---study2 连接池连接数据库实现登录注册查询用户的功能---
- Lucene:实现数据库的全文检索