全文检索中的数据填充问题.sql
CREATE DATABASE db
GO
USE db
--创建测试的表
CREATE TABLE tb(id int IDENTITY,col ntext,CONSTRAINT PK_tb PRIMARY KEY(id))
INSERT tb SELECT N'若无其事咬牙切齿'
UNION ALL SELECT N'车水马龙abcd因小而失大'
GO
--初始化全文索引
EXEC sp_fulltext_database 'enable'
GO
--创建一个名为 test 的全文目录
EXEC sp_fulltext_catalog 'test', 'create'
GO
--创建并填充全文索引
EXEC sp_fulltext_table 'tb','create','test','PK_tb'
EXEC sp_fulltext_column 'tb','col','add',0x0804
EXEC sp_fulltext_table 'tb','start_change_tracking'
EXEC sp_fulltext_table 'tb','Start_background_updateindex'
GO
--立即检索数据,会发现检索不到数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
WAITFOR DELAY '00:00:01'
--延时后可以检索到数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
--插入一条新数据
INSERT tb SELECT N'若abcd无其事咬牙切齿'
--立即,检索不到新加入的数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
WAITFOR DELAY '00:00:15'
--延时后可以检索到数据
SELECT * FROM tb WHERE CONTAINS(col,N'"abcd"')
GO
--删除测试
USE master
DROP DATABASE db